<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-872352852572370142</id><updated>2026-05-14T03:15:26.084-07:00</updated><category term="Python"/><category term="Computer Vision"/><category term="Data Science"/><category term="Image Processing"/><category term="PyTorch"/><category term="Machine Learning"/><category term="OpenCV"/><category term="Python Programming"/><category term="Deep Learning"/><category term="PyTorch Tensor"/><category term="Artificial Intelligence"/><category term="Matplotlib"/><category term="Linear Regression"/><category term="NumPy"/><category term="TensorFlow"/><category term="pip"/><category term="tools"/><category term="Algorithm"/><category term="CIFAR-10"/><category term="Deep Learning for Computer Vision"/><category term="Logistic Regression"/><category term="Neural Networks"/><category term="Pillow"/><category term="Python Tuple"/><category term="Technology News"/><category term="TorchVision"/><category term="Web Mining"/><category term="Activity Recognition"/><category term="Analysis of Algorithm"/><category term="CIFAR-100"/><category term="Data Analytics"/><category term="Data Engineer"/><category term="Deepfake"/><category term="Digital Frame Camera"/><category term="Django"/><category term="For Loop"/><category term="GATE 2025"/><category term="GPU"/><category term="Gate Data Science and AI"/><category term="Geo Spatial Informatics"/><category term="Geometric Deep Learning"/><category term="Graph Theory"/><category term="IR"/><category term="Information Retrieval"/><category term="Installing PyTorch"/><category term="K-Means Algorithm"/><category term="Keras"/><category term="Lambda Function"/><category term="Large Language Models (LLMs)"/><category term="Line Chart"/><category term="Mathematical Concepts in Machine Learning"/><category term="NP"/><category term="NP-complete"/><category term="NP-hard"/><category term="OpenAI"/><category term="P"/><category term="PCA"/><category term="Page Rank"/><category term="Python List"/><category term="Python String"/><category term="Random"/><category term="SciPy"/><category term="Scikit-learn"/><category term="Social Network Analysis"/><category term="String"/><category term="Tkinter"/><category term="Video"/><category term="Web Development"/><category term="YOLOv5"/><category term="colab"/><category term="github"/><category term="scikit-image"/><category term="whiteboard"/><title type='text'>Binary Study</title><subtitle type='html'>Explore Everything With Python </subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://www.binarystudy.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default'/><link rel='alternate' type='text/html' href='https://www.binarystudy.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default?start-index=26&amp;max-results=25'/><author><name>BinaryStudy</name><uri>http://www.blogger.com/profile/15724128477203620724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>84</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-872352852572370142.post-3649306476107729909</id><published>2026-05-14T03:10:29.704-07:00</published><updated>2026-05-14T03:13:03.702-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Logistic Regression"/><category scheme="http://www.blogger.com/atom/ns#" term="Machine Learning"/><category scheme="http://www.blogger.com/atom/ns#" term="tools"/><title type='text'>Logistic Regression Interactive Demo</title><content type='html'>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
&lt;meta charset=&quot;UTF-8&quot; /&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot; /&gt;
&lt;title&gt;Logistic Regression Demo&lt;/title&gt;
&lt;script src=&quot;https://cdn.jsdelivr.net/npm/chart.js&quot;&gt;&lt;/script&gt;
&lt;style&gt;
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 0;
background: #f4f6f9;
color: #333;
}

.container {
max-width: 1200px;
margin: auto;
padding: 20px;
}

h1 {
text-align: center;
color: #1e3a8a;
}

.card {
background: white;
padding: 20px;
margin-top: 20px;
border-radius: 10px;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.controls {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 20px;
margin-top: 20px;
}

label {
font-weight: bold;
display: block;
margin-bottom: 5px;
}

input[type=&quot;range&quot;] {
width: 100%;
}

button {
background: #2563eb;
color: white;
border: none;
padding: 12px 20px;
border-radius: 6px;
cursor: pointer;
font-size: 16px;
}

button:hover {
background: #1d4ed8;
}

.output {
margin-top: 20px;
font-size: 18px;
line-height: 1.8;
}

.formula {
background: #eef2ff;
padding: 15px;
border-radius: 8px;
margin-top: 15px;
font-family: monospace;
overflow-x: auto;
}

canvas {
margin-top: 20px;
}

.grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
}

@media (max-width: 768px) {
.grid {
grid-template-columns: 1fr;
}
}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div class=&quot;container&quot;&gt;
&lt;h1&gt;Logistic Regression Interactive Demo&lt;/h1&gt;

&lt;div class=&quot;card&quot;&gt;
&lt;h2&gt;About Logistic Regression&lt;/h2&gt;
&lt;p&gt;
Logistic Regression is a supervised machine learning algorithm used for classification problems.
It predicts the probability that an input belongs to a particular class.
&lt;/p&gt;

&lt;div class=&quot;formula&quot;&gt;
Sigmoid Function: P(Y=1) = 1 / (1 + e&lt;sup&gt;-(mx + b)&lt;/sup&gt;)
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;card&quot;&gt;
&lt;h2&gt;Interactive Controls&lt;/h2&gt;

&lt;div class=&quot;controls&quot;&gt;
&lt;div&gt;
&lt;label&gt;Slope (m): &lt;span id=&quot;mValue&quot;&gt;1&lt;/span&gt;&lt;/label&gt;
&lt;input type=&quot;range&quot; min=&quot;-10&quot; max=&quot;10&quot; step=&quot;0.1&quot; value=&quot;1&quot; id=&quot;mSlider&quot;&gt;
&lt;/div&gt;

&lt;div&gt;
&lt;label&gt;Intercept (b): &lt;span id=&quot;bValue&quot;&gt;0&lt;/span&gt;&lt;/label&gt;
&lt;input type=&quot;range&quot; min=&quot;-10&quot; max=&quot;10&quot; step=&quot;0.1&quot; value=&quot;0&quot; id=&quot;bSlider&quot;&gt;
&lt;/div&gt;

&lt;div&gt;
&lt;label&gt;Input Feature (x): &lt;span id=&quot;xValue&quot;&gt;0&lt;/span&gt;&lt;/label&gt;
&lt;input type=&quot;range&quot; min=&quot;-10&quot; max=&quot;10&quot; step=&quot;0.1&quot; value=&quot;0&quot; id=&quot;xSlider&quot;&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;br&gt;
&lt;button onclick=&quot;calculateProbability()&quot;&gt;Calculate Probability&lt;/button&gt;

&lt;div class=&quot;output&quot; id=&quot;output&quot;&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;grid&quot;&gt;
&lt;div class=&quot;card&quot;&gt;
&lt;h2&gt;Sigmoid Curve&lt;/h2&gt;
&lt;canvas id=&quot;sigmoidChart&quot;&gt;&lt;/canvas&gt;
&lt;/div&gt;

&lt;div class=&quot;card&quot;&gt;
&lt;h2&gt;Classification Interpretation&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;If probability &gt; 0.5 → Class 1&lt;/li&gt;
&lt;li&gt;If probability ≤ 0.5 → Class 0&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;formula&quot;&gt;
Linear Equation: z = mx + b
&lt;/div&gt;

&lt;div class=&quot;formula&quot;&gt;
Logistic Equation: σ(z) = 1 / (1 + e&lt;sup&gt;-z&lt;/sup&gt;)
&lt;/div&gt;

&lt;div id=&quot;classificationResult&quot; class=&quot;output&quot;&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class=&quot;card&quot;&gt;
&lt;h2&gt;Real-Life Examples of Logistic Regression&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Email Spam Detection&lt;/li&gt;
&lt;li&gt;Customer Churn Prediction&lt;/li&gt;
&lt;li&gt;Loan Default Prediction&lt;/li&gt;
&lt;li&gt;Medical Disease Prediction&lt;/li&gt;
&lt;li&gt;Employee Attrition Analysis&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
const mSlider = document.getElementById(&#39;mSlider&#39;);
const bSlider = document.getElementById(&#39;bSlider&#39;);
const xSlider = document.getElementById(&#39;xSlider&#39;);

const mValue = document.getElementById(&#39;mValue&#39;);
const bValue = document.getElementById(&#39;bValue&#39;);
const xValue = document.getElementById(&#39;xValue&#39;);

const output = document.getElementById(&#39;output&#39;);
const classificationResult = document.getElementById(&#39;classificationResult&#39;);

mSlider.oninput = () =&gt; {
mValue.innerText = mSlider.value;
updateChart();
}

bSlider.oninput = () =&gt; {
bValue.innerText = bSlider.value;
updateChart();
}

xSlider.oninput = () =&gt; {
xValue.innerText = xSlider.value;
}

function sigmoid(z) {
return 1 / (1 + Math.exp(-z));
}

function calculateProbability() {
const m = parseFloat(mSlider.value);
const b = parseFloat(bSlider.value);
const x = parseFloat(xSlider.value);

const z = m * x + b;
const probability = sigmoid(z);

output.innerHTML = `
&lt;strong&gt;Step 1:&lt;/strong&gt; Linear Equation&lt;br&gt;
z = (${m}) × (${x}) + (${b}) = ${z.toFixed(2)}&lt;br&gt;&lt;br&gt;

&lt;strong&gt;Step 2:&lt;/strong&gt; Apply Sigmoid Function&lt;br&gt;
Probability = ${probability.toFixed(4)}
`;

const predictedClass = probability &gt; 0.5 ? 1 : 0;

classificationResult.innerHTML = `
&lt;strong&gt;Predicted Probability:&lt;/strong&gt; ${probability.toFixed(4)}&lt;br&gt;
&lt;strong&gt;Predicted Class:&lt;/strong&gt; ${predictedClass}
`;
}

const ctx = document.getElementById(&#39;sigmoidChart&#39;).getContext(&#39;2d&#39;);

let sigmoidChart = new Chart(ctx, {
type: &#39;line&#39;,
data: {
labels: [],
datasets: [{
label: &#39;Sigmoid Curve&#39;,
data: [],
borderWidth: 3,
fill: false,
tension: 0.3
}]
},
options: {
responsive: true,
scales: {
y: {
min: 0,
max: 1
}
}
}
});

function updateChart() {
const m = parseFloat(mSlider.value);
const b = parseFloat(bSlider.value);

let labels = [];
let data = [];

for (let x = -10; x &lt;= 10; x += 0.5) {
let z = m * x + b;
labels.push(x.toFixed(1));
data.push(sigmoid(z));
}

sigmoidChart.data.labels = labels;
sigmoidChart.data.datasets[0].data = data;
sigmoidChart.update();
}

updateChart();
calculateProbability();
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;
</content><link rel='replies' type='application/atom+xml' href='https://www.binarystudy.com/feeds/3649306476107729909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.binarystudy.com/2026/05/logistic-regression-interactive-demo.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/3649306476107729909'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/3649306476107729909'/><link rel='alternate' type='text/html' href='https://www.binarystudy.com/2026/05/logistic-regression-interactive-demo.html' title='Logistic Regression Interactive Demo'/><author><name>BinaryStudy</name><uri>http://www.blogger.com/profile/15724128477203620724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-872352852572370142.post-6313988962427608260</id><published>2026-03-31T03:16:00.000-07:00</published><updated>2026-03-31T10:07:43.195-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Computer Vision"/><category scheme="http://www.blogger.com/atom/ns#" term="Image Processing"/><category scheme="http://www.blogger.com/atom/ns#" term="tools"/><title type='text'>Interactive Image Processing Demo - Computer Vision Edge Detection</title><content type='html'>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
&lt;meta charset=&quot;UTF-8&quot;&gt;
&lt;title&gt;Computer Vision Edge Detection&lt;/title&gt;

&lt;style&gt;
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}

/*
body {
font-family: &quot;Segoe UI&quot;, sans-serif;
background: linear-gradient(135deg, #667eea, #764ba2);
color: #333;
min-height: 100vh;
}
 */

h1 {
color: Green;
margin-bottom: 10px;
}

.wrapper {
max-width: 1100px;
margin: auto;
padding: 20px;
text-align: center;
}



/* Card UI */
.card {
border-radius: 16px;
padding: 20px;
margin-top: 20px;
box-shadow: 0 10px 25px rgba(0,0,0,0.2);
}

/* Controls */
.controls {
background: white;
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 20px;
margin-bottom: 20px;
}

.control-box {
background: rgb(252,248,247); 
display: flex;
flex-direction: column;
align-items: center;
box-shadow: 0 5px 10px rgba(0,0,0,0.2);
}

input[type=&quot;range&quot;] {
width: 180px;
}

select, button, input[type=&quot;file&quot;] {
padding: 8px 12px;
border-radius: 8px;
border: none;
outline: none;
}

button {
background: #667eea;
color: white;
cursor: pointer;
transition: 0.3s;
}

button:hover {
background: #5a67d8;
}

/* Canvas Layout */
.canvas-container {
display: flex;
gap: 20px;
justify-content: center;
flex-wrap: wrap;
}

.canvas-box {
text-align: center;
}

canvas {
border-radius: 12px;
border: 2px solid #ddd;
max-width: 100%;
}

/* Labels */
.label {
font-weight: bold;
margin-bottom: 5px;
}

/* Footer */
.footer {
margin-top: 15px;
font-size: 14px;
color: #eee;
}
&lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;

&lt;div class=&quot;wrapper&quot;&gt;
&lt;h1&gt;Computer Vision Edge Detection&lt;/h1&gt;
&lt;p&gt;Interactive Image Processing Demo &lt;/p&gt;

&lt;div class=&quot;card&quot;&gt;

&lt;!-- Controls --&gt;
&lt;div class=&quot;controls&quot;&gt;

&lt;div class=&quot;control-box&quot;&gt;
&lt;div class=&quot;label&quot;&gt;Upload Image&lt;/div&gt;
&lt;input type=&quot;file&quot; id=&quot;upload&quot; accept=&quot;image/*&quot;&gt;
&lt;/div&gt;

&lt;div class=&quot;control-box&quot;&gt;
&lt;div class=&quot;label&quot;&gt;Mode&lt;/div&gt;
&lt;select id=&quot;mode&quot;&gt;
&lt;option value=&quot;original&quot;&gt;Original&lt;/option&gt;
&lt;option value=&quot;grayscale&quot;&gt;Grayscale&lt;/option&gt;
&lt;option value=&quot;edge&quot;&gt;Edge Detection&lt;/option&gt;
&lt;/select&gt;
&lt;/div&gt;

&lt;div class=&quot;control-box&quot;&gt;
&lt;div class=&quot;label&quot;&gt;Threshold: &lt;span id=&quot;thValue&quot;&gt;100&lt;/span&gt;&lt;/div&gt;
&lt;input type=&quot;range&quot; id=&quot;threshold&quot; min=&quot;0&quot; max=&quot;255&quot; value=&quot;100&quot;&gt;
&lt;/div&gt;

&lt;div class=&quot;control-box&quot;&gt;
&lt;div class=&quot;label&quot;&gt;Download&lt;/div&gt;
&lt;button onclick=&quot;downloadImage()&quot;&gt;Save Output&lt;/button&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;!-- Canvas Section --&gt;
&lt;div class=&quot;canvas-container&quot;&gt;
&lt;div class=&quot;canvas-box&quot;&gt;
&lt;h3&gt;Original&lt;/h3&gt;
&lt;canvas id=&quot;originalCanvas&quot;&gt;&lt;/canvas&gt;
&lt;/div&gt;

&lt;div class=&quot;canvas-box&quot;&gt;
&lt;h3&gt;Output&lt;/h3&gt;
&lt;canvas id=&quot;edgeCanvas&quot;&gt;&lt;/canvas&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;

  
&lt;section&gt;
    &lt;h3&gt;What is Edge Detection?&lt;/h3&gt;
    &lt;p&gt;
        Edge detection is a fundamental technique in image processing used to identify the 
        &lt;strong&gt;boundaries of objects&lt;/strong&gt; within an image. It works by detecting 
        &lt;strong&gt;sharp changes in pixel intensity&lt;/strong&gt;, which usually represent edges.
    &lt;/p&gt;
    &lt;p&gt;
        In simple terms, it converts a normal image into an &lt;strong&gt;outline or sketch&lt;/strong&gt;, 
        highlighting important features while removing unnecessary details.
    &lt;/p&gt;

    &lt;h3&gt;Why is Edge Detection Important?&lt;/h3&gt;
    &lt;ul&gt;
        &lt;li&gt;Helps in &lt;strong&gt;object recognition&lt;/strong&gt;&lt;/li&gt;
        &lt;li&gt;Used in &lt;strong&gt;computer vision applications&lt;/strong&gt;&lt;/li&gt;
        &lt;li&gt;Reduces data while preserving key information&lt;/li&gt;
        &lt;li&gt;Useful in &lt;strong&gt;medical imaging, self-driving cars, and surveillance systems&lt;/strong&gt;&lt;/li&gt;
    &lt;/ul&gt;

    &lt;h3&gt;What This Demo Does&lt;/h3&gt;
    &lt;p&gt;
        This interactive tool allows you to:
    &lt;/p&gt;
    &lt;ul&gt;
        &lt;li&gt;Upload an image&lt;/li&gt;
        &lt;li&gt;Apply grayscale and edge detection&lt;/li&gt;
        &lt;li&gt;Visualize how edges are extracted from the image&lt;/li&gt;
    &lt;/ul&gt;

    &lt;h3&gt; How to Use This Tool&lt;/h3&gt;
    &lt;ol&gt;
        &lt;li&gt;&lt;strong&gt;Upload an Image:&lt;/strong&gt; Select any image from your device.&lt;/li&gt;
        &lt;li&gt;&lt;strong&gt;Choose the Mode:&lt;/strong&gt; Example: Original, Grayscale, or Edge Detection&lt;/li&gt;
        &lt;li&gt;&lt;strong&gt;Adjust Parameters:&lt;/strong&gt; Modify thresholds or filters to see different results.&lt;/li&gt;
        &lt;li&gt;&lt;strong&gt;Compare Results:&lt;/strong&gt; Observe differences between original and processed image.&lt;/li&gt;
    &lt;/ol&gt;

    &lt;h3&gt; Tips for Better Results&lt;/h3&gt;
    &lt;ul&gt;
        &lt;li&gt;Use &lt;strong&gt;clear and high-resolution images&lt;/strong&gt;&lt;/li&gt;
        &lt;li&gt;Try different methods to compare outputs&lt;/li&gt;
        &lt;li&gt;Adjust parameters to see how edge sensitivity changes&lt;/li&gt;
    &lt;/ul&gt;

    &lt;h3&gt; Learning Outcome&lt;/h3&gt;
    &lt;ul&gt;
        &lt;li&gt;Understand how images are processed digitally&lt;/li&gt;
        &lt;li&gt;Learn how edge detection works&lt;/li&gt;
        &lt;li&gt;Recognize the importance of edges in image analysis&lt;/li&gt;
    &lt;/ul&gt;

    &lt;h3&gt; Applications&lt;/h3&gt;
    &lt;ul&gt;
        &lt;li&gt;Face detection systems&lt;/li&gt;
        &lt;li&gt;Medical image analysis&lt;/li&gt;
        &lt;li&gt;Autonomous vehicles&lt;/li&gt;
        &lt;li&gt;Image segmentation&lt;/li&gt;
    &lt;/ul&gt;
&lt;/section&gt;
 
&lt;script&gt;
const upload = document.getElementById(&#39;upload&#39;);
const originalCanvas = document.getElementById(&#39;originalCanvas&#39;);
const edgeCanvas = document.getElementById(&#39;edgeCanvas&#39;);

const ctxOriginal = originalCanvas.getContext(&#39;2d&#39;);
const ctxEdge = edgeCanvas.getContext(&#39;2d&#39;);

const thresholdSlider = document.getElementById(&#39;threshold&#39;);
const thValue = document.getElementById(&#39;thValue&#39;);
const mode = document.getElementById(&#39;mode&#39;);

let threshold = 100;

// Threshold update
thresholdSlider.addEventListener(&#39;input&#39;, () =&gt; {
threshold = thresholdSlider.value;
thValue.textContent = threshold;
processImage();
});

// Mode change
mode.addEventListener(&#39;change&#39;, processImage);

// Upload image
upload.addEventListener(&#39;change&#39;, function(e) {
const file = e.target.files[0];
const img = new Image();

img.onload = function() {
originalCanvas.width = img.width;
originalCanvas.height = img.height;
edgeCanvas.width = img.width;
edgeCanvas.height = img.height;

ctxOriginal.drawImage(img, 0, 0);
processImage();
};

img.src = URL.createObjectURL(file);
});

// Main processing
function processImage() {
const width = originalCanvas.width;
const height = originalCanvas.height;

if (width === 0 || height === 0) return;

const imageData = ctxOriginal.getImageData(0, 0, width, height);
const data = imageData.data;

// Grayscale
for (let i = 0; i &lt; data.length; i += 4) {
const gray = 0.3 * data[i] + 0.59 * data[i+1] + 0.11 * data[i+2];
data[i] = data[i+1] = data[i+2] = gray;
}

if (mode.value === &quot;original&quot;) {
ctxEdge.drawImage(originalCanvas, 0, 0);
return;
}

if (mode.value === &quot;grayscale&quot;) {
ctxEdge.putImageData(imageData, 0, 0);
return;
}

const edgeData = ctxEdge.createImageData(width, height);

for (let y = 1; y &lt; height - 1; y++) {
for (let x = 1; x &lt; width - 1; x++) {
const i = (y * width + x) * 4;

const gx =
-data[((y-1)*width + (x-1))*4] +
data[((y-1)*width + (x+1))*4] +
-2*data[(y*width + (x-1))*4] +
2*data[(y*width + (x+1))*4] +
-data[((y+1)*width + (x-1))*4] +
data[((y+1)*width + (x+1))*4];

const gy =
-data[((y-1)*width + (x-1))*4] +
-2*data[((y-1)*width + x)*4] +
-data[((y-1)*width + (x+1))*4] +
data[((y+1)*width + (x-1))*4] +
2*data[((y+1)*width + x)*4] +
data[((y+1)*width + (x+1))*4];

const magnitude = Math.sqrt(gx * gx + gy * gy);
const edge = magnitude &gt; threshold ? 255 : 0;

edgeData.data[i] = edge;
edgeData.data[i+1] = edge;
edgeData.data[i+2] = edge;
edgeData.data[i+3] = 255;
}
}

ctxEdge.putImageData(edgeData, 0, 0);
}

// Download
function downloadImage() {
const link = document.createElement(&#39;a&#39;);
link.download = &#39;edge_output.png&#39;;
link.href = edgeCanvas.toDataURL();
link.click();
}
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.binarystudy.com/feeds/6313988962427608260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.binarystudy.com/2026/03/interactive-image-processing-demo-edge-detection.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/6313988962427608260'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/6313988962427608260'/><link rel='alternate' type='text/html' href='https://www.binarystudy.com/2026/03/interactive-image-processing-demo-edge-detection.html' title='Interactive Image Processing Demo - Computer Vision Edge Detection'/><author><name>BinaryStudy</name><uri>http://www.blogger.com/profile/15724128477203620724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-872352852572370142.post-4549583780367875527</id><published>2026-03-27T09:03:00.000-07:00</published><updated>2026-03-27T09:03:31.709-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Computer Vision"/><category scheme="http://www.blogger.com/atom/ns#" term="tools"/><title type='text'>Computer Vision Demo: Edge Detection</title><content type='html'>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;title&gt;Computer Vision Demo - Edge Detection&lt;/title&gt;
    &lt;style&gt;
        body {
            font-family: Arial;
            text-align: center;
            background: #f4f6f8;
        }
        h1 {
            color: #333;
        }
        .container {
            margin-top: 20px;
        }
        canvas {
            border: 2px solid #333;
            margin: 10px;
        }
        input {
            margin: 15px;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;h1&gt;Computer Vision Demo: Edge Detection&lt;/h1&gt;

&lt;input type=&quot;file&quot; id=&quot;upload&quot; accept=&quot;image/*&quot;&gt;

&lt;div class=&quot;container&quot;&gt;
    &lt;div&gt;
        &lt;h3&gt;Original Image&lt;/h3&gt;
        &lt;canvas id=&quot;originalCanvas&quot;&gt;&lt;/canvas&gt;
    &lt;/div&gt;

    &lt;div&gt;
        &lt;h3&gt;Edge Detection Output&lt;/h3&gt;
        &lt;canvas id=&quot;edgeCanvas&quot;&gt;&lt;/canvas&gt;
    &lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
const upload = document.getElementById(&#39;upload&#39;);
const originalCanvas = document.getElementById(&#39;originalCanvas&#39;);
const edgeCanvas = document.getElementById(&#39;edgeCanvas&#39;);

const ctxOriginal = originalCanvas.getContext(&#39;2d&#39;);
const ctxEdge = edgeCanvas.getContext(&#39;2d&#39;);

upload.addEventListener(&#39;change&#39;, function(e) {
    const file = e.target.files[0];
    const img = new Image();

    img.onload = function() {
        originalCanvas.width = img.width;
        originalCanvas.height = img.height;
        edgeCanvas.width = img.width;
        edgeCanvas.height = img.height;

        ctxOriginal.drawImage(img, 0, 0);

        processImage();
    };

    img.src = URL.createObjectURL(file);
});

function processImage() {
    const imageData = ctxOriginal.getImageData(0, 0, originalCanvas.width, originalCanvas.height);
    const data = imageData.data;

    // Convert to grayscale
    for (let i = 0; i &lt; data.length; i += 4) {
        const gray = 0.3 * data[i] + 0.59 * data[i+1] + 0.11 * data[i+2];
        data[i] = data[i+1] = data[i+2] = gray;
    }

    // Simple edge detection (Sobel-like)
    const width = originalCanvas.width;
    const height = originalCanvas.height;
    const edgeData = ctxEdge.createImageData(width, height);

    for (let y = 1; y &lt; height - 1; y++) {
        for (let x = 1; x &lt; width - 1; x++) {
            const i = (y * width + x) * 4;

            const gx =
                -data[((y-1)*width + (x-1))*4] +
                data[((y-1)*width + (x+1))*4] +
                -2*data[(y*width + (x-1))*4] +
                2*data[(y*width + (x+1))*4] +
                -data[((y+1)*width + (x-1))*4] +
                data[((y+1)*width + (x+1))*4];

            const gy =
                -data[((y-1)*width + (x-1))*4] +
                -2*data[((y-1)*width + x)*4] +
                -data[((y-1)*width + (x+1))*4] +
                data[((y+1)*width + (x-1))*4] +
                2*data[((y+1)*width + x)*4] +
                data[((y+1)*width + (x+1))*4];

            const magnitude = Math.sqrt(gx*gx + gy*gy);

            edgeData.data[i] = edgeData.data[i+1] = edgeData.data[i+2] = magnitude;
            edgeData.data[i+3] = 255;
        }
    }

    ctxEdge.putImageData(edgeData, 0, 0);
}
&lt;/script&gt;

&lt;/body&gt;
&lt;/html&gt;

</content><link rel='replies' type='application/atom+xml' href='https://www.binarystudy.com/feeds/4549583780367875527/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.binarystudy.com/2026/03/computer-vision-demo-edge-detection.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/4549583780367875527'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/4549583780367875527'/><link rel='alternate' type='text/html' href='https://www.binarystudy.com/2026/03/computer-vision-demo-edge-detection.html' title='Computer Vision Demo: Edge Detection'/><author><name>BinaryStudy</name><uri>http://www.blogger.com/profile/15724128477203620724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-872352852572370142.post-317473102695597598</id><published>2025-10-22T05:16:00.000-07:00</published><updated>2026-05-14T03:15:26.084-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Data Analytics"/><category scheme="http://www.blogger.com/atom/ns#" term="Data Science"/><category scheme="http://www.blogger.com/atom/ns#" term="Machine Learning"/><title type='text'>Data Cleaning in Python Pandas | Data Science, Analytics and ML Project</title><content type='html'>&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;&lt;meta charset=&quot;utf-8&quot;&gt;&lt;/meta&gt;
&lt;meta content=&quot;width=device-width, initial-scale=1.0&quot; name=&quot;viewport&quot;&gt;&lt;/meta&gt;
&lt;title&gt;data_cleaning_pandas&lt;/title&gt;&lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js&quot;&gt;&lt;/script&gt;
&lt;style type=&quot;text/css&quot;&gt;
    pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: var(--jp-cell-editor-active-background) }
.highlight { background: var(--jp-cell-editor-background); color: var(--jp-mirror-editor-variable-color) }
.highlight .c { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment */
.highlight .err { color: var(--jp-mirror-editor-error-color) } /* Error */
.highlight .k { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword */
.highlight .o { color: var(--jp-mirror-editor-operator-color); font-weight: bold } /* Operator */
.highlight .p { color: var(--jp-mirror-editor-punctuation-color) } /* Punctuation */
.highlight .ch { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Hashbang */
.highlight .cm { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Multiline */
.highlight .cp { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Preproc */
.highlight .cpf { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.PreprocFile */
.highlight .c1 { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Single */
.highlight .cs { color: var(--jp-mirror-editor-comment-color); font-style: italic } /* Comment.Special */
.highlight .kc { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Pseudo */
.highlight .kr { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: var(--jp-mirror-editor-keyword-color); font-weight: bold } /* Keyword.Type */
.highlight .m { color: var(--jp-mirror-editor-number-color) } /* Literal.Number */
.highlight .s { color: var(--jp-mirror-editor-string-color) } /* Literal.String */
.highlight .ow { color: var(--jp-mirror-editor-operator-color); font-weight: bold } /* Operator.Word */
.highlight .pm { color: var(--jp-mirror-editor-punctuation-color) } /* Punctuation.Marker */
.highlight .w { color: var(--jp-mirror-editor-variable-color) } /* Text.Whitespace */
.highlight .mb { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Bin */
.highlight .mf { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Float */
.highlight .mh { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Hex */
.highlight .mi { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Integer */
.highlight .mo { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Oct */
.highlight .sa { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Affix */
.highlight .sb { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Backtick */
.highlight .sc { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Char */
.highlight .dl { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Delimiter */
.highlight .sd { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Doc */
.highlight .s2 { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Double */
.highlight .se { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Escape */
.highlight .sh { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Heredoc */
.highlight .si { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Interpol */
.highlight .sx { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Other */
.highlight .sr { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Regex */
.highlight .s1 { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Single */
.highlight .ss { color: var(--jp-mirror-editor-string-color) } /* Literal.String.Symbol */
.highlight .il { color: var(--jp-mirror-editor-number-color) } /* Literal.Number.Integer.Long */
  &lt;/style&gt;
&lt;style type=&quot;text/css&quot;&gt;
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

/*
 * Mozilla scrollbar styling
 */

/* use standard opaque scrollbars for most nodes */
[data-jp-theme-scrollbars=&#39;true&#39;] {
  scrollbar-color: rgb(var(--jp-scrollbar-thumb-color))
    var(--jp-scrollbar-background-color);
}

/* for code nodes, use a transparent style of scrollbar. These selectors
 * will match lower in the tree, and so will override the above */
[data-jp-theme-scrollbars=&#39;true&#39;] .CodeMirror-hscrollbar,
[data-jp-theme-scrollbars=&#39;true&#39;] .CodeMirror-vscrollbar {
  scrollbar-color: rgba(var(--jp-scrollbar-thumb-color), 0.5) transparent;
}

/* tiny scrollbar */

.jp-scrollbar-tiny {
  scrollbar-color: rgba(var(--jp-scrollbar-thumb-color), 0.5) transparent;
  scrollbar-width: thin;
}

/* tiny scrollbar */

.jp-scrollbar-tiny::-webkit-scrollbar,
.jp-scrollbar-tiny::-webkit-scrollbar-corner {
  background-color: transparent;
  height: 4px;
  width: 4px;
}

.jp-scrollbar-tiny::-webkit-scrollbar-thumb {
  background: rgba(var(--jp-scrollbar-thumb-color), 0.5);
}

.jp-scrollbar-tiny::-webkit-scrollbar-track:horizontal {
  border-left: 0 solid transparent;
  border-right: 0 solid transparent;
}

.jp-scrollbar-tiny::-webkit-scrollbar-track:vertical {
  border-top: 0 solid transparent;
  border-bottom: 0 solid transparent;
}

/*
 * Lumino
 */

.lm-ScrollBar[data-orientation=&#39;horizontal&#39;] {
  min-height: 16px;
  max-height: 16px;
  min-width: 45px;
  border-top: 1px solid #a0a0a0;
}

.lm-ScrollBar[data-orientation=&#39;vertical&#39;] {
  min-width: 16px;
  max-width: 16px;
  min-height: 45px;
  border-left: 1px solid #a0a0a0;
}

.lm-ScrollBar-button {
  background-color: #f0f0f0;
  background-position: center center;
  min-height: 15px;
  max-height: 15px;
  min-width: 15px;
  max-width: 15px;
}

.lm-ScrollBar-button:hover {
  background-color: #dadada;
}

.lm-ScrollBar-button.lm-mod-active {
  background-color: #cdcdcd;
}

.lm-ScrollBar-track {
  background: #f0f0f0;
}

.lm-ScrollBar-thumb {
  background: #cdcdcd;
}

.lm-ScrollBar-thumb:hover {
  background: #bababa;
}

.lm-ScrollBar-thumb.lm-mod-active {
  background: #a0a0a0;
}

.lm-ScrollBar[data-orientation=&#39;horizontal&#39;] .lm-ScrollBar-thumb {
  height: 100%;
  min-width: 15px;
  border-left: 1px solid #a0a0a0;
  border-right: 1px solid #a0a0a0;
}

.lm-ScrollBar[data-orientation=&#39;vertical&#39;] .lm-ScrollBar-thumb {
  width: 100%;
  min-height: 15px;
  border-top: 1px solid #a0a0a0;
  border-bottom: 1px solid #a0a0a0;
}

.lm-ScrollBar[data-orientation=&#39;horizontal&#39;]
  .lm-ScrollBar-button[data-action=&#39;decrement&#39;] {
  background-image: var(--jp-icon-caret-left);
  background-size: 17px;
}

.lm-ScrollBar[data-orientation=&#39;horizontal&#39;]
  .lm-ScrollBar-button[data-action=&#39;increment&#39;] {
  background-image: var(--jp-icon-caret-right);
  background-size: 17px;
}

.lm-ScrollBar[data-orientation=&#39;vertical&#39;]
  .lm-ScrollBar-button[data-action=&#39;decrement&#39;] {
  background-image: var(--jp-icon-caret-up);
  background-size: 17px;
}

.lm-ScrollBar[data-orientation=&#39;vertical&#39;]
  .lm-ScrollBar-button[data-action=&#39;increment&#39;] {
  background-image: var(--jp-icon-caret-down);
  background-size: 17px;
}

/*
 * Copyright (c) Jupyter Development Team.
 * Distributed under the terms of the Modified BSD License.
 */

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/

.lm-Widget {
  box-sizing: border-box;
  position: relative;
  overflow: hidden;
}

.lm-Widget.lm-mod-hidden {
  display: none !important;
}

/*
 * Copyright (c) Jupyter Development Team.
 * Distributed under the terms of the Modified BSD License.
 */

.lm-AccordionPanel[data-orientation=&#39;horizontal&#39;] &gt; .lm-AccordionPanel-title {
  /* Title is rotated for horizontal accordion panel using CSS */
  display: block;
  transform-origin: top left;
  transform: rotate(-90deg) translate(-100%);
}

/*
 * Copyright (c) Jupyter Development Team.
 * Distributed under the terms of the Modified BSD License.
 */

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/

.lm-CommandPalette {
  display: flex;
  flex-direction: column;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.lm-CommandPalette-search {
  flex: 0 0 auto;
}

.lm-CommandPalette-content {
  flex: 1 1 auto;
  margin: 0;
  padding: 0;
  min-height: 0;
  overflow: auto;
  list-style-type: none;
}

.lm-CommandPalette-header {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.lm-CommandPalette-item {
  display: flex;
  flex-direction: row;
}

.lm-CommandPalette-itemIcon {
  flex: 0 0 auto;
}

.lm-CommandPalette-itemContent {
  flex: 1 1 auto;
  overflow: hidden;
}

.lm-CommandPalette-itemShortcut {
  flex: 0 0 auto;
}

.lm-CommandPalette-itemLabel {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.lm-close-icon {
  border: 1px solid transparent;
  background-color: transparent;
  position: absolute;
  z-index: 1;
  right: 3%;
  top: 0;
  bottom: 0;
  margin: auto;
  padding: 7px 0;
  display: none;
  vertical-align: middle;
  outline: 0;
  cursor: pointer;
}
.lm-close-icon:after {
  content: &#39;X&#39;;
  display: block;
  width: 15px;
  height: 15px;
  text-align: center;
  color: #000;
  font-weight: normal;
  font-size: 12px;
  cursor: pointer;
}

/*
 * Copyright (c) Jupyter Development Team.
 * Distributed under the terms of the Modified BSD License.
 */

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/

.lm-DockPanel {
  z-index: 0;
}

.lm-DockPanel-widget {
  z-index: 0;
}

.lm-DockPanel-tabBar {
  z-index: 1;
}

.lm-DockPanel-handle {
  z-index: 2;
}

.lm-DockPanel-handle.lm-mod-hidden {
  display: none !important;
}

.lm-DockPanel-handle:after {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  content: &#39;&#39;;
}

.lm-DockPanel-handle[data-orientation=&#39;horizontal&#39;] {
  cursor: ew-resize;
}

.lm-DockPanel-handle[data-orientation=&#39;vertical&#39;] {
  cursor: ns-resize;
}

.lm-DockPanel-handle[data-orientation=&#39;horizontal&#39;]:after {
  left: 50%;
  min-width: 8px;
  transform: translateX(-50%);
}

.lm-DockPanel-handle[data-orientation=&#39;vertical&#39;]:after {
  top: 50%;
  min-height: 8px;
  transform: translateY(-50%);
}

.lm-DockPanel-overlay {
  z-index: 3;
  box-sizing: border-box;
  pointer-events: none;
}

.lm-DockPanel-overlay.lm-mod-hidden {
  display: none !important;
}

/*
 * Copyright (c) Jupyter Development Team.
 * Distributed under the terms of the Modified BSD License.
 */

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/

.lm-Menu {
  z-index: 10000;
  position: absolute;
  white-space: nowrap;
  overflow-x: hidden;
  overflow-y: auto;
  outline: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.lm-Menu-content {
  margin: 0;
  padding: 0;
  display: table;
  list-style-type: none;
}

.lm-Menu-item {
  display: table-row;
}

.lm-Menu-item.lm-mod-hidden,
.lm-Menu-item.lm-mod-collapsed {
  display: none !important;
}

.lm-Menu-itemIcon,
.lm-Menu-itemSubmenuIcon {
  display: table-cell;
  text-align: center;
}

.lm-Menu-itemLabel {
  display: table-cell;
  text-align: left;
}

.lm-Menu-itemShortcut {
  display: table-cell;
  text-align: right;
}

/*
 * Copyright (c) Jupyter Development Team.
 * Distributed under the terms of the Modified BSD License.
 */

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/

.lm-MenuBar {
  outline: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.lm-MenuBar-content {
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: row;
  list-style-type: none;
}

.lm-MenuBar-item {
  box-sizing: border-box;
}

.lm-MenuBar-itemIcon,
.lm-MenuBar-itemLabel {
  display: inline-block;
}

/*
 * Copyright (c) Jupyter Development Team.
 * Distributed under the terms of the Modified BSD License.
 */

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/

.lm-ScrollBar {
  display: flex;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.lm-ScrollBar[data-orientation=&#39;horizontal&#39;] {
  flex-direction: row;
}

.lm-ScrollBar[data-orientation=&#39;vertical&#39;] {
  flex-direction: column;
}

.lm-ScrollBar-button {
  box-sizing: border-box;
  flex: 0 0 auto;
}

.lm-ScrollBar-track {
  box-sizing: border-box;
  position: relative;
  overflow: hidden;
  flex: 1 1 auto;
}

.lm-ScrollBar-thumb {
  box-sizing: border-box;
  position: absolute;
}

/*
 * Copyright (c) Jupyter Development Team.
 * Distributed under the terms of the Modified BSD License.
 */

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/

.lm-SplitPanel-child {
  z-index: 0;
}

.lm-SplitPanel-handle {
  z-index: 1;
}

.lm-SplitPanel-handle.lm-mod-hidden {
  display: none !important;
}

.lm-SplitPanel-handle:after {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  content: &#39;&#39;;
}

.lm-SplitPanel[data-orientation=&#39;horizontal&#39;] &gt; .lm-SplitPanel-handle {
  cursor: ew-resize;
}

.lm-SplitPanel[data-orientation=&#39;vertical&#39;] &gt; .lm-SplitPanel-handle {
  cursor: ns-resize;
}

.lm-SplitPanel[data-orientation=&#39;horizontal&#39;] &gt; .lm-SplitPanel-handle:after {
  left: 50%;
  min-width: 8px;
  transform: translateX(-50%);
}

.lm-SplitPanel[data-orientation=&#39;vertical&#39;] &gt; .lm-SplitPanel-handle:after {
  top: 50%;
  min-height: 8px;
  transform: translateY(-50%);
}

/*
 * Copyright (c) Jupyter Development Team.
 * Distributed under the terms of the Modified BSD License.
 */

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/

.lm-TabBar {
  display: flex;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.lm-TabBar[data-orientation=&#39;horizontal&#39;] {
  flex-direction: row;
  align-items: flex-end;
}

.lm-TabBar[data-orientation=&#39;vertical&#39;] {
  flex-direction: column;
  align-items: flex-end;
}

.lm-TabBar-content {
  margin: 0;
  padding: 0;
  display: flex;
  flex: 1 1 auto;
  list-style-type: none;
}

.lm-TabBar[data-orientation=&#39;horizontal&#39;] &gt; .lm-TabBar-content {
  flex-direction: row;
}

.lm-TabBar[data-orientation=&#39;vertical&#39;] &gt; .lm-TabBar-content {
  flex-direction: column;
}

.lm-TabBar-tab {
  display: flex;
  flex-direction: row;
  box-sizing: border-box;
  overflow: hidden;
  touch-action: none; /* Disable native Drag/Drop */
}

.lm-TabBar-tabIcon,
.lm-TabBar-tabCloseIcon {
  flex: 0 0 auto;
}

.lm-TabBar-tabLabel {
  flex: 1 1 auto;
  overflow: hidden;
  white-space: nowrap;
}

.lm-TabBar-tabInput {
  user-select: all;
  width: 100%;
  box-sizing: border-box;
}

.lm-TabBar-tab.lm-mod-hidden {
  display: none !important;
}

.lm-TabBar-addButton.lm-mod-hidden {
  display: none !important;
}

.lm-TabBar.lm-mod-dragging .lm-TabBar-tab {
  position: relative;
}

.lm-TabBar.lm-mod-dragging[data-orientation=&#39;horizontal&#39;] .lm-TabBar-tab {
  left: 0;
  transition: left 150ms ease;
}

.lm-TabBar.lm-mod-dragging[data-orientation=&#39;vertical&#39;] .lm-TabBar-tab {
  top: 0;
  transition: top 150ms ease;
}

.lm-TabBar.lm-mod-dragging .lm-TabBar-tab.lm-mod-dragging {
  transition: none;
}

.lm-TabBar-tabLabel .lm-TabBar-tabInput {
  user-select: all;
  width: 100%;
  box-sizing: border-box;
  background: inherit;
}

/*
 * Copyright (c) Jupyter Development Team.
 * Distributed under the terms of the Modified BSD License.
 */

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/

.lm-TabPanel-tabBar {
  z-index: 1;
}

.lm-TabPanel-stackedPanel {
  z-index: 0;
}

/*
 * Copyright (c) Jupyter Development Team.
 * Distributed under the terms of the Modified BSD License.
 */

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

.jp-Collapse {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

.jp-Collapse-header {
  padding: 1px 12px;
  background-color: var(--jp-layout-color1);
  border-bottom: solid var(--jp-border-width) var(--jp-border-color2);
  color: var(--jp-ui-font-color1);
  cursor: pointer;
  display: flex;
  align-items: center;
  font-size: var(--jp-ui-font-size0);
  font-weight: 600;
  text-transform: uppercase;
  user-select: none;
}

.jp-Collapser-icon {
  height: 16px;
}

.jp-Collapse-header-collapsed .jp-Collapser-icon {
  transform: rotate(-90deg);
  margin: auto 0;
}

.jp-Collapser-title {
  line-height: 25px;
}

.jp-Collapse-contents {
  padding: 0 12px;
  background-color: var(--jp-layout-color1);
  color: var(--jp-ui-font-color1);
  overflow: auto;
}

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

/* This file was auto-generated by ensureUiComponents() in @jupyterlab/buildutils */

/**
 * (DEPRECATED) Support for consuming icons as CSS background images
 */

/* Icons urls */

:root {
  --jp-icon-add-above: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzEzN18xOTQ5MikiPgo8cGF0aCBjbGFzcz0ianAtaWNvbjMiIGQ9Ik00Ljc1IDQuOTMwNjZINi42MjVWNi44MDU2NkM2LjYyNSA3LjAxMTkxIDYuNzkzNzUgNy4xODA2NiA3IDcuMTgwNjZDNy4yMDYyNSA3LjE4MDY2IDcuMzc1IDcuMDExOTEgNy4zNzUgNi44MDU2NlY0LjkzMDY2SDkuMjVDOS40NTYyNSA0LjkzMDY2IDkuNjI1IDQuNzYxOTEgOS42MjUgNC41NTU2NkM5LjYyNSA0LjM0OTQxIDkuNDU2MjUgNC4xODA2NiA5LjI1IDQuMTgwNjZINy4zNzVWMi4zMDU2NkM3LjM3NSAyLjA5OTQxIDcuMjA2MjUgMS45MzA2NiA3IDEuOTMwNjZDNi43OTM3NSAxLjkzMDY2IDYuNjI1IDIuMDk5NDEgNi42MjUgMi4zMDU2NlY0LjE4MDY2SDQuNzVDNC41NDM3NSA0LjE4MDY2IDQuMzc1IDQuMzQ5NDEgNC4zNzUgNC41NTU2NkM0LjM3NSA0Ljc2MTkxIDQuNTQzNzUgNC45MzA2NiA0Ljc1IDQuOTMwNjZaIiBmaWxsPSIjNjE2MTYxIiBzdHJva2U9IiM2MTYxNjEiIHN0cm9rZS13aWR0aD0iMC43Ii8+CjwvZz4KPHBhdGggY2xhc3M9ImpwLWljb24zIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTExLjUgOS41VjExLjVMMi41IDExLjVWOS41TDExLjUgOS41Wk0xMiA4QzEyLjU1MjMgOCAxMyA4LjQ0NzcyIDEzIDlWMTJDMTMgMTIuNTUyMyAxMi41NTIzIDEzIDEyIDEzTDIgMTNDMS40NDc3MiAxMyAxIDEyLjU1MjMgMSAxMlY5QzEgOC40NDc3MiAxLjQ0NzcxIDggMiA4TDEyIDhaIiBmaWxsPSIjNjE2MTYxIi8+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzEzN18xOTQ5MiI+CjxyZWN0IGNsYXNzPSJqcC1pY29uMyIgd2lkdGg9IjYiIGhlaWdodD0iNiIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0ibWF0cml4KC0xIDAgMCAxIDEwIDEuNTU1NjYpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==);
  --jp-icon-add-below: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzEzN18xOTQ5OCkiPgo8cGF0aCBjbGFzcz0ianAtaWNvbjMiIGQ9Ik05LjI1IDEwLjA2OTNMNy4zNzUgMTAuMDY5M0w3LjM3NSA4LjE5NDM0QzcuMzc1IDcuOTg4MDkgNy4yMDYyNSA3LjgxOTM0IDcgNy44MTkzNEM2Ljc5Mzc1IDcuODE5MzQgNi42MjUgNy45ODgwOSA2LjYyNSA4LjE5NDM0TDYuNjI1IDEwLjA2OTNMNC43NSAxMC4wNjkzQzQuNTQzNzUgMTAuMDY5MyA0LjM3NSAxMC4yMzgxIDQuMzc1IDEwLjQ0NDNDNC4zNzUgMTAuNjUwNiA0LjU0Mzc1IDEwLjgxOTMgNC43NSAxMC44MTkzTDYuNjI1IDEwLjgxOTNMNi42MjUgMTIuNjk0M0M2LjYyNSAxMi45MDA2IDYuNzkzNzUgMTMuMDY5MyA3IDEzLjA2OTNDNy4yMDYyNSAxMy4wNjkzIDcuMzc1IDEyLjkwMDYgNy4zNzUgMTIuNjk0M0w3LjM3NSAxMC44MTkzTDkuMjUgMTAuODE5M0M5LjQ1NjI1IDEwLjgxOTMgOS42MjUgMTAuNjUwNiA5LjYyNSAxMC40NDQzQzkuNjI1IDEwLjIzODEgOS40NTYyNSAxMC4wNjkzIDkuMjUgMTAuMDY5M1oiIGZpbGw9IiM2MTYxNjEiIHN0cm9rZT0iIzYxNjE2MSIgc3Ryb2tlLXdpZHRoPSIwLjciLz4KPC9nPgo8cGF0aCBjbGFzcz0ianAtaWNvbjMiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMi41IDUuNUwyLjUgMy41TDExLjUgMy41TDExLjUgNS41TDIuNSA1LjVaTTIgN0MxLjQ0NzcyIDcgMSA2LjU1MjI4IDEgNkwxIDNDMSAyLjQ0NzcyIDEuNDQ3NzIgMiAyIDJMMTIgMkMxMi41NTIzIDIgMTMgMi40NDc3MiAxMyAzTDEzIDZDMTMgNi41NTIyOSAxMi41NTIzIDcgMTIgN0wyIDdaIiBmaWxsPSIjNjE2MTYxIi8+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzEzN18xOTQ5OCI+CjxyZWN0IGNsYXNzPSJqcC1pY29uMyIgd2lkdGg9IjYiIGhlaWdodD0iNiIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0ibWF0cml4KDEgMS43NDg0NmUtMDcgMS43NDg0NmUtMDcgLTEgNCAxMy40NDQzKSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=);
  --jp-icon-add: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTE5IDEzaC02djZoLTJ2LTZINXYtMmg2VjVoMnY2aDZ2MnoiLz4KICA8L2c+Cjwvc3ZnPgo=);
  --jp-icon-bell: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiPgogICA8cGF0aCBjbGFzcz0ianAtaWNvbjIganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjMzMzMzMzIgogICAgICBkPSJtOCAwLjI5Yy0xLjQgMC0yLjcgMC43My0zLjYgMS44LTEuMiAxLjUtMS40IDMuNC0xLjUgNS4yLTAuMTggMi4yLTAuNDQgNC0yLjMgNS4zbDAuMjggMS4zaDVjMC4wMjYgMC42NiAwLjMyIDEuMSAwLjcxIDEuNSAwLjg0IDAuNjEgMiAwLjYxIDIuOCAwIDAuNTItMC40IDAuNi0xIDAuNzEtMS41aDVsMC4yOC0xLjNjLTEuOS0wLjk3LTIuMi0zLjMtMi4zLTUuMy0wLjEzLTEuOC0wLjI2LTMuNy0xLjUtNS4yLTAuODUtMS0yLjItMS44LTMuNi0xLjh6bTAgMS40YzAuODggMCAxLjkgMC41NSAyLjUgMS4zIDAuODggMS4xIDEuMSAyLjcgMS4yIDQuNCAwLjEzIDEuNyAwLjIzIDMuNiAxLjMgNS4yaC0xMGMxLjEtMS42IDEuMi0zLjQgMS4zLTUuMiAwLjEzLTEuNyAwLjMtMy4zIDEuMi00LjQgMC41OS0wLjcyIDEuNi0xLjMgMi41LTEuM3ptLTAuNzQgMTJoMS41Yy0wLjAwMTUgMC4yOCAwLjAxNSAwLjc5LTAuNzQgMC43OS0wLjczIDAuMDAxNi0wLjcyLTAuNTMtMC43NC0wLjc5eiIgLz4KPC9zdmc+Cg==);
  --jp-icon-bug-dot: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiM2MTYxNjEiPgogICAgICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTcuMTkgOEgyMFYxMEgxNy45MUMxNy45NiAxMC4zMyAxOCAxMC42NiAxOCAxMVYxMkgyMFYxNEgxOC41SDE4VjE0LjAyNzVDMTUuNzUgMTQuMjc2MiAxNCAxNi4xODM3IDE0IDE4LjVDMTQgMTkuMjA4IDE0LjE2MzUgMTkuODc3OSAxNC40NTQ5IDIwLjQ3MzlDMTMuNzA2MyAyMC44MTE3IDEyLjg3NTcgMjEgMTIgMjFDOS43OCAyMSA3Ljg1IDE5Ljc5IDYuODEgMThINFYxNkg2LjA5QzYuMDQgMTUuNjcgNiAxNS4zNCA2IDE1VjE0SDRWMTJINlYxMUM2IDEwLjY2IDYuMDQgMTAuMzMgNi4wOSAxMEg0VjhINi44MUM3LjI2IDcuMjIgNy44OCA2LjU1IDguNjIgNi4wNEw3IDQuNDFMOC40MSAzTDEwLjU5IDUuMTdDMTEuMDQgNS4wNiAxMS41MSA1IDEyIDVDMTIuNDkgNSAxMi45NiA1LjA2IDEzLjQyIDUuMTdMMTUuNTkgM0wxNyA0LjQxTDE1LjM3IDYuMDRDMTYuMTIgNi41NSAxNi43NCA3LjIyIDE3LjE5IDhaTTEwIDE2SDE0VjE0SDEwVjE2Wk0xMCAxMkgxNFYxMEgxMFYxMloiIGZpbGw9IiM2MTYxNjEiLz4KICAgICAgICA8cGF0aCBkPSJNMjIgMTguNUMyMiAyMC40MzMgMjAuNDMzIDIyIDE4LjUgMjJDMTYuNTY3IDIyIDE1IDIwLjQzMyAxNSAxOC41QzE1IDE2LjU2NyAxNi41NjcgMTUgMTguNSAxNUMyMC40MzMgMTUgMjIgMTYuNTY3IDIyIDE4LjVaIiBmaWxsPSIjNjE2MTYxIi8+CiAgICA8L2c+Cjwvc3ZnPgo=);
  --jp-icon-bug: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxwYXRoIGQ9Ik0yMCA4aC0yLjgxYy0uNDUtLjc4LTEuMDctMS40NS0xLjgyLTEuOTZMMTcgNC40MSAxNS41OSAzbC0yLjE3IDIuMTdDMTIuOTYgNS4wNiAxMi40OSA1IDEyIDVjLS40OSAwLS45Ni4wNi0xLjQxLjE3TDguNDEgMyA3IDQuNDFsMS42MiAxLjYzQzcuODggNi41NSA3LjI2IDcuMjIgNi44MSA4SDR2MmgyLjA5Yy0uMDUuMzMtLjA5LjY2LS4wOSAxdjFINHYyaDJ2MWMwIC4zNC4wNC42Ny4wOSAxSDR2MmgyLjgxYzEuMDQgMS43OSAyLjk3IDMgNS4xOSAzczQuMTUtMS4yMSA1LjE5LTNIMjB2LTJoLTIuMDljLjA1LS4zMy4wOS0uNjYuMDktMXYtMWgydi0yaC0ydi0xYzAtLjM0LS4wNC0uNjctLjA5LTFIMjBWOHptLTYgOGgtNHYtMmg0djJ6bTAtNGgtNHYtMmg0djJ6Ii8+CiAgPC9nPgo8L3N2Zz4K);
  --jp-icon-build: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTE0LjkgMTcuNDVDMTYuMjUgMTcuNDUgMTcuMzUgMTYuMzUgMTcuMzUgMTVDMTcuMzUgMTMuNjUgMTYuMjUgMTIuNTUgMTQuOSAxMi41NUMxMy41NCAxMi41NSAxMi40NSAxMy42NSAxMi40NSAxNUMxMi40NSAxNi4zNSAxMy41NCAxNy40NSAxNC45IDE3LjQ1Wk0yMC4xIDE1LjY4TDIxLjU4IDE2Ljg0QzIxLjcxIDE2Ljk1IDIxLjc1IDE3LjEzIDIxLjY2IDE3LjI5TDIwLjI2IDE5LjcxQzIwLjE3IDE5Ljg2IDIwIDE5LjkyIDE5LjgzIDE5Ljg2TDE4LjA5IDE5LjE2QzE3LjczIDE5LjQ0IDE3LjMzIDE5LjY3IDE2LjkxIDE5Ljg1TDE2LjY0IDIxLjdDMTYuNjIgMjEuODcgMTYuNDcgMjIgMTYuMyAyMkgxMy41QzEzLjMyIDIyIDEzLjE4IDIxLjg3IDEzLjE1IDIxLjdMMTIuODkgMTkuODVDMTIuNDYgMTkuNjcgMTIuMDcgMTkuNDQgMTEuNzEgMTkuMTZMOS45NjAwMiAxOS44NkM5LjgxMDAyIDE5LjkyIDkuNjIwMDIgMTkuODYgOS41NDAwMiAxOS43MUw4LjE0MDAyIDE3LjI5QzguMDUwMDIgMTcuMTMgOC4wOTAwMiAxNi45NSA4LjIyMDAyIDE2Ljg0TDkuNzAwMDIgMTUuNjhMOS42NTAwMSAxNUw5LjcwMDAyIDE0LjMxTDguMjIwMDIgMTMuMTZDOC4wOTAwMiAxMy4wNSA4LjA1MDAyIDEyLjg2IDguMTQwMDIgMTIuNzFMOS41NDAwMiAxMC4yOUM5LjYyMDAyIDEwLjEzIDkuODEwMDIgMTAuMDcgOS45NjAwMiAxMC4xM0wxMS43MSAxMC44NEMxMi4wNyAxMC41NiAxMi40NiAxMC4zMiAxMi44OSAxMC4xNUwxMy4xNSA4LjI4OTk4QzEzLjE4IDguMTI5OTggMTMuMzIgNy45OTk5OCAxMy41IDcuOTk5OThIMTYuM0MxNi40NyA3Ljk5OTk4IDE2LjYyIDguMTI5OTggMTYuNjQgOC4yODk5OEwxNi45MSAxMC4xNUMxNy4zMyAxMC4zMiAxNy43MyAxMC41NiAxOC4wOSAxMC44NEwxOS44MyAxMC4xM0MyMCAxMC4wNyAyMC4xNyAxMC4xMyAyMC4yNiAxMC4yOUwyMS42NiAxMi43MUMyMS43NSAxMi44NiAyMS43MSAxMy4wNSAyMS41OCAxMy4xNkwyMC4xIDE0LjMxTDIwLjE1IDE1TDIwLjEgMTUuNjhaIi8+CiAgICA8cGF0aCBkPSJNNy4zMjk2NiA3LjQ0NDU0QzguMDgzMSA3LjAwOTU0IDguMzM5MzIgNi4wNTMzMiA3LjkwNDMyIDUuMjk5ODhDNy40NjkzMiA0LjU0NjQzIDYuNTA4MSA0LjI4MTU2IDUuNzU0NjYgNC43MTY1NkM1LjM5MTc2IDQuOTI2MDggNS4xMjY5NSA1LjI3MTE4IDUuMDE4NDkgNS42NzU5NEM0LjkxMDA0IDYuMDgwNzEgNC45NjY4MiA2LjUxMTk4IDUuMTc2MzQgNi44NzQ4OEM1LjYxMTM0IDcuNjI4MzIgNi41NzYyMiA3Ljg3OTU0IDcuMzI5NjYgNy40NDQ1NFpNOS42NTcxOCA0Ljc5NTkzTDEwLjg2NzIgNC45NTE3OUMxMC45NjI4IDQuOTc3NDEgMTEuMDQwMiA1LjA3MTMzIDExLjAzODIgNS4xODc5M0wxMS4wMzg4IDYuOTg4OTNDMTEuMDQ1NSA3LjEwMDU0IDEwLjk2MTYgNy4xOTUxOCAxMC44NTUgNy4yMTA1NEw5LjY2MDAxIDcuMzgwODNMOS4yMzkxNSA4LjEzMTg4TDkuNjY5NjEgOS4yNTc0NUM5LjcwNzI5IDkuMzYyNzEgOS42NjkzNCA5LjQ3Njk5IDkuNTc0MDggOS41MzE5OUw4LjAxNTIzIDEwLjQzMkM3LjkxMTMxIDEwLjQ5MiA3Ljc5MzM3IDEwLjQ2NzcgNy43MjEwNSAxMC4zODI0TDYuOTg3NDggOS40MzE4OEw2LjEwOTMxIDkuNDMwODNMNS4zNDcwNCAxMC4zOTA1QzUuMjg5MDkgMTAuNDcwMiA1LjE3MzgzIDEwLjQ5MDUgNS4wNzE4NyAxMC40MzM5TDMuNTEyNDUgOS41MzI5M0MzLjQxMDQ5IDkuNDc2MzMgMy4zNzY0NyA5LjM1NzQxIDMuNDEwNzUgOS4yNTY3OUwzLjg2MzQ3IDguMTQwOTNMMy42MTc0OSA3Ljc3NDg4TDMuNDIzNDcgNy4zNzg4M0wyLjIzMDc1IDcuMjEyOTdDMi4xMjY0NyA3LjE5MjM1IDIuMDQwNDkgNy4xMDM0MiAyLjA0MjQ1IDYuOTg2ODJMMi4wNDE4NyA1LjE4NTgyQzIuMDQzODMgNS4wNjkyMiAyLjExOTA5IDQuOTc5NTggMi4yMTcwNCA0Ljk2OTIyTDMuNDIwNjUgNC43OTM5M0wzLjg2NzQ5IDQuMDI3ODhMMy40MTEwNSAyLjkxNzMxQzMuMzczMzcgMi44MTIwNCAzLjQxMTMxIDIuNjk3NzYgMy41MTUyMyAyLjYzNzc2TDUuMDc0MDggMS43Mzc3NkM1LjE2OTM0IDEuNjgyNzYgNS4yODcyOSAxLjcwNzA0IDUuMzU5NjEgMS43OTIzMUw2LjExOTE1IDIuNzI3ODhMNi45ODAwMSAyLjczODkzTDcuNzI0OTYgMS43ODkyMkM3Ljc5MTU2IDEuNzA0NTggNy45MTU0OCAxLjY3OTIyIDguMDA4NzkgMS43NDA4Mkw5LjU2ODIxIDIuNjQxODJDOS42NzAxNyAyLjY5ODQyIDkuNzEyODUgMi44MTIzNCA5LjY4NzIzIDIuOTA3OTdMOS4yMTcxOCA0LjAzMzgzTDkuNDYzMTYgNC4zOTk4OEw5LjY1NzE4IDQuNzk1OTNaIi8+CiAgPC9nPgo8L3N2Zz4K);
  --jp-icon-caret-down-empty-thin: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwIDIwIj4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgoJCTxwb2x5Z29uIGNsYXNzPSJzdDEiIHBvaW50cz0iOS45LDEzLjYgMy42LDcuNCA0LjQsNi42IDkuOSwxMi4yIDE1LjQsNi43IDE2LjEsNy40ICIvPgoJPC9nPgo8L3N2Zz4K);
  --jp-icon-caret-down-empty: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KICAgIDxwYXRoIGQ9Ik01LjIsNS45TDksOS43bDMuOC0zLjhsMS4yLDEuMmwtNC45LDVsLTQuOS01TDUuMiw1Ljl6Ii8+CiAgPC9nPgo8L3N2Zz4K);
  --jp-icon-caret-down: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KICAgIDxwYXRoIGQ9Ik01LjIsNy41TDksMTEuMmwzLjgtMy44SDUuMnoiLz4KICA8L2c+Cjwvc3ZnPgo=);
  --jp-icon-caret-left: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgoJCTxwYXRoIGQ9Ik0xMC44LDEyLjhMNy4xLDlsMy44LTMuOGwwLDcuNkgxMC44eiIvPgogIDwvZz4KPC9zdmc+Cg==);
  --jp-icon-caret-right: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiIHNoYXBlLXJlbmRlcmluZz0iZ2VvbWV0cmljUHJlY2lzaW9uIj4KICAgIDxwYXRoIGQ9Ik03LjIsNS4yTDEwLjksOWwtMy44LDMuOFY1LjJINy4yeiIvPgogIDwvZz4KPC9zdmc+Cg==);
  --jp-icon-caret-up-empty-thin: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwIDIwIj4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgoJCTxwb2x5Z29uIGNsYXNzPSJzdDEiIHBvaW50cz0iMTUuNCwxMy4zIDkuOSw3LjcgNC40LDEzLjIgMy42LDEyLjUgOS45LDYuMyAxNi4xLDEyLjYgIi8+Cgk8L2c+Cjwvc3ZnPgo=);
  --jp-icon-caret-up: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSIgc2hhcGUtcmVuZGVyaW5nPSJnZW9tZXRyaWNQcmVjaXNpb24iPgoJCTxwYXRoIGQ9Ik01LjIsMTAuNUw5LDYuOGwzLjgsMy44SDUuMnoiLz4KICA8L2c+Cjwvc3ZnPgo=);
  --jp-icon-case-sensitive: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8ZyBjbGFzcz0ianAtaWNvbjIiIGZpbGw9IiM0MTQxNDEiPgogICAgPHJlY3QgeD0iMiIgeT0iMiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ii8+CiAgPC9nPgogIDxnIGNsYXNzPSJqcC1pY29uLWFjY2VudDIiIGZpbGw9IiNGRkYiPgogICAgPHBhdGggZD0iTTcuNiw4aDAuOWwzLjUsOGgtMS4xTDEwLDE0SDZsLTAuOSwySDRMNy42LDh6IE04LDkuMUw2LjQsMTNoMy4yTDgsOS4xeiIvPgogICAgPHBhdGggZD0iTTE2LjYsOS44Yy0wLjIsMC4xLTAuNCwwLjEtMC43LDAuMWMtMC4yLDAtMC40LTAuMS0wLjYtMC4yYy0wLjEtMC4xLTAuMi0wLjQtMC4yLTAuNyBjLTAuMywwLjMtMC42LDAuNS0wLjksMC43Yy0wLjMsMC4xLTAuNywwLjItMS4xLDAuMmMtMC4zLDAtMC41LDAtMC43LTAuMWMtMC4yLTAuMS0wLjQtMC4yLTAuNi0wLjNjLTAuMi0wLjEtMC4zLTAuMy0wLjQtMC41IGMtMC4xLTAuMi0wLjEtMC40LTAuMS0wLjdjMC0wLjMsMC4xLTAuNiwwLjItMC44YzAuMS0wLjIsMC4zLTAuNCwwLjQtMC41QzEyLDcsMTIuMiw2LjksMTIuNSw2LjhjMC4yLTAuMSwwLjUtMC4xLDAuNy0wLjIgYzAuMy0wLjEsMC41LTAuMSwwLjctMC4xYzAuMiwwLDAuNC0wLjEsMC42LTAuMWMwLjIsMCwwLjMtMC4xLDAuNC0wLjJjMC4xLTAuMSwwLjItMC4yLDAuMi0wLjRjMC0xLTEuMS0xLTEuMy0xIGMtMC40LDAtMS40LDAtMS40LDEuMmgtMC45YzAtMC40LDAuMS0wLjcsMC4yLTFjMC4xLTAuMiwwLjMtMC40LDAuNS0wLjZjMC4yLTAuMiwwLjUtMC4zLDAuOC0wLjNDMTMuMyw0LDEzLjYsNCwxMy45LDQgYzAuMywwLDAuNSwwLDAuOCwwLjFjMC4zLDAsMC41LDAuMSwwLjcsMC4yYzAuMiwwLjEsMC40LDAuMywwLjUsMC41QzE2LDUsMTYsNS4yLDE2LDUuNnYyLjljMCwwLjIsMCwwLjQsMCwwLjUgYzAsMC4xLDAuMSwwLjIsMC4zLDAuMmMwLjEsMCwwLjIsMCwwLjMsMFY5Ljh6IE0xNS4yLDYuOWMtMS4yLDAuNi0zLjEsMC4yLTMuMSwxLjRjMCwxLjQsMy4xLDEsMy4xLTAuNVY2Ljl6Ii8+CiAgPC9nPgo8L3N2Zz4K);
  --jp-icon-check: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxwYXRoIGQ9Ik05IDE2LjE3TDQuODMgMTJsLTEuNDIgMS40MUw5IDE5IDIxIDdsLTEuNDEtMS40MXoiLz4KICA8L2c+Cjwvc3ZnPgo=);
  --jp-icon-circle-empty: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTEyIDJDNi40NyAyIDIgNi40NyAyIDEyczQuNDcgMTAgMTAgMTAgMTAtNC40NyAxMC0xMFMxNy41MyAyIDEyIDJ6bTAgMThjLTQuNDEgMC04LTMuNTktOC04czMuNTktOCA4LTggOCAzLjU5IDggOC0zLjU5IDgtOCA4eiIvPgogIDwvZz4KPC9zdmc+Cg==);
  --jp-icon-circle: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPGNpcmNsZSBjeD0iOSIgY3k9IjkiIHI9IjgiLz4KICA8L2c+Cjwvc3ZnPgo=);
  --jp-icon-clear: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8bWFzayBpZD0iZG9udXRIb2xlIj4KICAgIDxyZWN0IHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0id2hpdGUiIC8+CiAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI4IiBmaWxsPSJibGFjayIvPgogIDwvbWFzaz4KCiAgPGcgY2xhc3M9ImpwLWljb24zIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxyZWN0IGhlaWdodD0iMTgiIHdpZHRoPSIyIiB4PSIxMSIgeT0iMyIgdHJhbnNmb3JtPSJyb3RhdGUoMzE1LCAxMiwgMTIpIi8+CiAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgbWFzaz0idXJsKCNkb251dEhvbGUpIi8+CiAgPC9nPgo8L3N2Zz4K);
  --jp-icon-close: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbi1ub25lIGpwLWljb24tc2VsZWN0YWJsZS1pbnZlcnNlIGpwLWljb24zLWhvdmVyIiBmaWxsPSJub25lIj4KICAgIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjExIi8+CiAgPC9nPgoKICA8ZyBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIGpwLWljb24tYWNjZW50Mi1ob3ZlciIgZmlsbD0iIzYxNjE2MSI+CiAgICA8cGF0aCBkPSJNMTkgNi40MUwxNy41OSA1IDEyIDEwLjU5IDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDEyIDEzLjQxIDE3LjU5IDE5IDE5IDE3LjU5IDEzLjQxIDEyeiIvPgogIDwvZz4KCiAgPGcgY2xhc3M9ImpwLWljb24tbm9uZSBqcC1pY29uLWJ1c3kiIGZpbGw9Im5vbmUiPgogICAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iNyIvPgogIDwvZz4KPC9zdmc+Cg==);
  --jp-icon-code-check: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+CiAgICA8cGF0aCBkPSJNNi41OSwzLjQxTDIsOEw2LjU5LDEyLjZMOCwxMS4xOEw0LjgyLDhMOCw0LjgyTDYuNTksMy40MU0xMi40MSwzLjQxTDExLDQuODJMMTQuMTgsOEwxMSwxMS4xOEwxMi40MSwxMi42TDE3LDhMMTIuNDEsMy40MU0yMS41OSwxMS41OUwxMy41LDE5LjY4TDkuODMsMTZMOC40MiwxNy40MUwxMy41LDIyLjVMMjMsMTNMMjEuNTksMTEuNTlaIiAvPgogIDwvZz4KPC9zdmc+Cg==);
  --jp-icon-code: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMjIiIHZpZXdCb3g9IjAgMCAyOCAyOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CgkJPHBhdGggZD0iTTExLjQgMTguNkw2LjggMTRMMTEuNCA5LjRMMTAgOEw0IDE0TDEwIDIwTDExLjQgMTguNlpNMTYuNiAxOC42TDIxLjIgMTRMMTYuNiA5LjRMMTggOEwyNCAxNEwxOCAyMEwxNi42IDE4LjZWMTguNloiLz4KCTwvZz4KPC9zdmc+Cg==);
  --jp-icon-collapse-all: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGgKICAgICAgICAgICAgZD0iTTggMmMxIDAgMTEgMCAxMiAwczIgMSAyIDJjMCAxIDAgMTEgMCAxMnMwIDItMiAyQzIwIDE0IDIwIDQgMjAgNFMxMCA0IDYgNGMwLTIgMS0yIDItMnoiIC8+CiAgICAgICAgPHBhdGgKICAgICAgICAgICAgZD0iTTE4IDhjMC0xLTEtMi0yLTJTNSA2IDQgNnMtMiAxLTIgMmMwIDEgMCAxMSAwIDEyczEgMiAyIDJjMSAwIDExIDAgMTIgMHMyLTEgMi0yYzAtMSAwLTExIDAtMTJ6bS0yIDB2MTJINFY4eiIgLz4KICAgICAgICA8cGF0aCBkPSJNNiAxM3YyaDh2LTJ6IiAvPgogICAgPC9nPgo8L3N2Zz4K);
  --jp-icon-console: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwMCAyMDAiPgogIDxnIGNsYXNzPSJqcC1jb25zb2xlLWljb24tYmFja2dyb3VuZC1jb2xvciBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiMwMjg4RDEiPgogICAgPHBhdGggZD0iTTIwIDE5LjhoMTYwdjE1OS45SDIweiIvPgogIDwvZz4KICA8ZyBjbGFzcz0ianAtY29uc29sZS1pY29uLWNvbG9yIGpwLWljb24tc2VsZWN0YWJsZS1pbnZlcnNlIiBmaWxsPSIjZmZmIj4KICAgIDxwYXRoIGQ9Ik0xMDUgMTI3LjNoNDB2MTIuOGgtNDB6TTUxLjEgNzdMNzQgOTkuOWwtMjMuMyAyMy4zIDEwLjUgMTAuNSAyMy4zLTIzLjNMOTUgOTkuOSA4NC41IDg5LjQgNjEuNiA2Ni41eiIvPgogIDwvZz4KPC9zdmc+Cg==);
  --jp-icon-copy: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTExLjksMUgzLjJDMi40LDEsMS43LDEuNywxLjcsMi41djEwLjJoMS41VjIuNWg4LjdWMXogTTE0LjEsMy45aC04Yy0wLjgsMC0xLjUsMC43LTEuNSwxLjV2MTAuMmMwLDAuOCwwLjcsMS41LDEuNSwxLjVoOCBjMC44LDAsMS41LTAuNywxLjUtMS41VjUuNEMxNS41LDQuNiwxNC45LDMuOSwxNC4xLDMuOXogTTE0LjEsMTUuNWgtOFY1LjRoOFYxNS41eiIvPgogIDwvZz4KPC9zdmc+Cg==);
  --jp-icon-copyright: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCI+CiAgPGcgY2xhc3M9ImpwLWljb24zIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxwYXRoIGQ9Ik0xMS44OCw5LjE0YzEuMjgsMC4wNiwxLjYxLDEuMTUsMS42MywxLjY2aDEuNzljLTAuMDgtMS45OC0xLjQ5LTMuMTktMy40NS0zLjE5QzkuNjQsNy42MSw4LDksOCwxMi4xNCBjMCwxLjk0LDAuOTMsNC4yNCwzLjg0LDQuMjRjMi4yMiwwLDMuNDEtMS42NSwzLjQ0LTIuOTVoLTEuNzljLTAuMDMsMC41OS0wLjQ1LDEuMzgtMS42MywxLjQ0QzEwLjU1LDE0LjgzLDEwLDEzLjgxLDEwLDEyLjE0IEMxMCw5LjI1LDExLjI4LDkuMTYsMTEuODgsOS4xNHogTTEyLDJDNi40OCwyLDIsNi40OCwyLDEyczQuNDgsMTAsMTAsMTBzMTAtNC40OCwxMC0xMFMxNy41MiwyLDEyLDJ6IE0xMiwyMGMtNC40MSwwLTgtMy41OS04LTggczMuNTktOCw4LThzOCwzLjU5LDgsOFMxNi40MSwyMCwxMiwyMHoiLz4KICA8L2c+Cjwvc3ZnPgo=);
  --jp-icon-cut: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTkuNjQgNy42NGMuMjMtLjUuMzYtMS4wNS4zNi0xLjY0IDAtMi4yMS0xLjc5LTQtNC00UzIgMy43OSAyIDZzMS43OSA0IDQgNGMuNTkgMCAxLjE0LS4xMyAxLjY0LS4zNkwxMCAxMmwtMi4zNiAyLjM2QzcuMTQgMTQuMTMgNi41OSAxNCA2IDE0Yy0yLjIxIDAtNCAxLjc5LTQgNHMxLjc5IDQgNCA0IDQtMS43OSA0LTRjMC0uNTktLjEzLTEuMTQtLjM2LTEuNjRMMTIgMTRsNyA3aDN2LTFMOS42NCA3LjY0ek02IDhjLTEuMSAwLTItLjg5LTItMnMuOS0yIDItMiAyIC44OSAyIDItLjkgMi0yIDJ6bTAgMTJjLTEuMSAwLTItLjg5LTItMnMuOS0yIDItMiAyIC44OSAyIDItLjkgMi0yIDJ6bTYtNy41Yy0uMjggMC0uNS0uMjItLjUtLjVzLjIyLS41LjUtLjUuNS4yMi41LjUtLjIyLjUtLjUuNXpNMTkgM2wtNiA2IDIgMiA3LTdWM3oiLz4KICA8L2c+Cjwvc3ZnPgo=);
  --jp-icon-delete: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCI+CiAgICA8cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIiAvPgogICAgPHBhdGggY2xhc3M9ImpwLWljb24zIiBmaWxsPSIjNjI2MjYyIiBkPSJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek0xOSA0aC0zLjVsLTEtMWgtNWwtMSAxSDV2MmgxNFY0eiIgLz4KPC9zdmc+Cg==);
  --jp-icon-download: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTE5IDloLTRWM0g5djZINWw3IDcgNy03ek01IDE4djJoMTR2LTJINXoiLz4KICA8L2c+Cjwvc3ZnPgo=);
  --jp-icon-duplicate: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggY2xhc3M9ImpwLWljb24zIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTIuNzk5OTggMC44NzVIOC44OTU4MkM5LjIwMDYxIDAuODc1IDkuNDQ5OTggMS4xMzkxNCA5LjQ0OTk4IDEuNDYxOThDOS40NDk5OCAxLjc4NDgyIDkuMjAwNjEgMi4wNDg5NiA4Ljg5NTgyIDIuMDQ4OTZIMy4zNTQxNUMzLjA0OTM2IDIuMDQ4OTYgMi43OTk5OCAyLjMxMzEgMi43OTk5OCAyLjYzNTk0VjkuNjc5NjlDMi43OTk5OCAxMC4wMDI1IDIuNTUwNjEgMTAuMjY2NyAyLjI0NTgyIDEwLjI2NjdDMS45NDEwMyAxMC4yNjY3IDEuNjkxNjUgMTAuMDAyNSAxLjY5MTY1IDkuNjc5NjlWMi4wNDg5NkMxLjY5MTY1IDEuNDAzMjggMi4xOTA0IDAuODc1IDIuNzk5OTggMC44NzVaTTUuMzY2NjUgMTEuOVY0LjU1SDExLjA4MzNWMTEuOUg1LjM2NjY1Wk00LjE0MTY1IDQuMTQxNjdDNC4xNDE2NSAzLjY5MDYzIDQuNTA3MjggMy4zMjUgNC45NTgzMiAzLjMyNUgxMS40OTE3QzExLjk0MjcgMy4zMjUgMTIuMzA4MyAzLjY5MDYzIDEyLjMwODMgNC4xNDE2N1YxMi4zMDgzQzEyLjMwODMgMTIuNzU5NCAxMS45NDI3IDEzLjEyNSAxMS40OTE3IDEzLjEyNUg0Ljk1ODMyQzQuNTA3MjggMTMuMTI1IDQuMTQxNjUgMTIuNzU5NCA0LjE0MTY1IDEyLjMwODNWNC4xNDE2N1oiIGZpbGw9IiM2MTYxNjEiLz4KPHBhdGggY2xhc3M9ImpwLWljb24zIiBkPSJNOS40MzU3NCA4LjI2NTA3SDguMzY0MzFWOS4zMzY1QzguMzY0MzEgOS40NTQzNSA4LjI2Nzg4IDkuNTUwNzggOC4xNTAwMiA5LjU1MDc4QzguMDMyMTcgOS41NTA3OCA3LjkzNTc0IDkuNDU0MzUgNy45MzU3NCA5LjMzNjVWOC4yNjUwN0g2Ljg2NDMxQzYuNzQ2NDUgOC4yNjUwNyA2LjY1MDAyIDguMTY4NjQgNi42NTAwMiA4LjA1MDc4QzYuNjUwMDIgNy45MzI5MiA2Ljc0NjQ1IDcuODM2NSA2Ljg2NDMxIDcuODM2NUg3LjkzNTc0VjYuNzY1MDdDNy45MzU3NCA2LjY0NzIxIDguMDMyMTcgNi41NTA3OCA4LjE1MDAyIDYuNTUwNzhDOC4yNjc4OCA2LjU1MDc4IDguMzY0MzEgNi42NDcyMSA4LjM2NDMxIDYuNzY1MDdWNy44MzY1SDkuNDM1NzRDOS41NTM2IDcuODM2NSA5LjY1MDAyIDcuOTMyOTIgOS42NTAwMiA4LjA1MDc4QzkuNjUwMDIgOC4xNjg2NCA5LjU1MzYgOC4yNjUwNyA5LjQzNTc0IDguMjY1MDdaIiBmaWxsPSIjNjE2MTYxIiBzdHJva2U9IiM2MTYxNjEiIHN0cm9rZS13aWR0aD0iMC41Ii8+Cjwvc3ZnPgo=);
  --jp-icon-edit: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTMgMTcuMjVWMjFoMy43NUwxNy44MSA5Ljk0bC0zLjc1LTMuNzVMMyAxNy4yNXpNMjAuNzEgNy4wNGMuMzktLjM5LjM5LTEuMDIgMC0xLjQxbC0yLjM0LTIuMzRjLS4zOS0uMzktMS4wMi0uMzktMS40MSAwbC0xLjgzIDEuODMgMy43NSAzLjc1IDEuODMtMS44M3oiLz4KICA8L2c+Cjwvc3ZnPgo=);
  --jp-icon-ellipses: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPGNpcmNsZSBjeD0iNSIgY3k9IjEyIiByPSIyIi8+CiAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIyIi8+CiAgICA8Y2lyY2xlIGN4PSIxOSIgY3k9IjEyIiByPSIyIi8+CiAgPC9nPgo8L3N2Zz4K);
  --jp-icon-error: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KPGcgY2xhc3M9ImpwLWljb24zIiBmaWxsPSIjNjE2MTYxIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjE5IiByPSIyIi8+PHBhdGggZD0iTTEwIDNoNHYxMmgtNHoiLz48L2c+CjxwYXRoIGZpbGw9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiLz4KPC9zdmc+Cg==);
  --jp-icon-expand-all: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGgKICAgICAgICAgICAgZD0iTTggMmMxIDAgMTEgMCAxMiAwczIgMSAyIDJjMCAxIDAgMTEgMCAxMnMwIDItMiAyQzIwIDE0IDIwIDQgMjAgNFMxMCA0IDYgNGMwLTIgMS0yIDItMnoiIC8+CiAgICAgICAgPHBhdGgKICAgICAgICAgICAgZD0iTTE4IDhjMC0xLTEtMi0yLTJTNSA2IDQgNnMtMiAxLTIgMmMwIDEgMCAxMSAwIDEyczEgMiAyIDJjMSAwIDExIDAgMTIgMHMyLTEgMi0yYzAtMSAwLTExIDAtMTJ6bS0yIDB2MTJINFY4eiIgLz4KICAgICAgICA8cGF0aCBkPSJNMTEgMTBIOXYzSDZ2MmgzdjNoMnYtM2gzdi0yaC0zeiIgLz4KICAgIDwvZz4KPC9zdmc+Cg==);
  --jp-icon-extension: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTIwLjUgMTFIMTlWN2MwLTEuMS0uOS0yLTItMmgtNFYzLjVDMTMgMi4xMiAxMS44OCAxIDEwLjUgMVM4IDIuMTIgOCAzLjVWNUg0Yy0xLjEgMC0xLjk5LjktMS45OSAydjMuOEgzLjVjMS40OSAwIDIuNyAxLjIxIDIuNyAyLjdzLTEuMjEgMi43LTIuNyAyLjdIMlYyMGMwIDEuMS45IDIgMiAyaDMuOHYtMS41YzAtMS40OSAxLjIxLTIuNyAyLjctMi43IDEuNDkgMCAyLjcgMS4yMSAyLjcgMi43VjIySDE3YzEuMSAwIDItLjkgMi0ydi00aDEuNWMxLjM4IDAgMi41LTEuMTIgMi41LTIuNVMyMS44OCAxMSAyMC41IDExeiIvPgogIDwvZz4KPC9zdmc+Cg==);
  --jp-icon-fast-forward: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTQgMThsOC41LTZMNCA2djEyem05LTEydjEybDguNS02TDEzIDZ6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=);
  --jp-icon-file-upload: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTkgMTZoNnYtNmg0bC03LTctNyA3aDR6bS00IDJoMTR2Mkg1eiIvPgogIDwvZz4KPC9zdmc+Cg==);
  --jp-icon-file: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8cGF0aCBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMTkuMyA4LjJsLTUuNS01LjVjLS4zLS4zLS43LS41LTEuMi0uNUgzLjljLS44LjEtMS42LjktMS42IDEuOHYxNC4xYzAgLjkuNyAxLjYgMS42IDEuNmgxNC4yYy45IDAgMS42LS43IDEuNi0xLjZWOS40Yy4xLS41LS4xLS45LS40LTEuMnptLTUuOC0zLjNsMy40IDMuNmgtMy40VjQuOXptMy45IDEyLjdINC43Yy0uMSAwLS4yIDAtLjItLjJWNC43YzAtLjIuMS0uMy4yLS4zaDcuMnY0LjRzMCAuOC4zIDEuMWMuMy4zIDEuMS4zIDEuMS4zaDQuM3Y3LjJzLS4xLjItLjIuMnoiLz4KPC9zdmc+Cg==);
  --jp-icon-filter-dot: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiNGRkYiPgogICAgPHBhdGggZD0iTTE0LDEyVjE5Ljg4QzE0LjA0LDIwLjE4IDEzLjk0LDIwLjUgMTMuNzEsMjAuNzFDMTMuMzIsMjEuMSAxMi42OSwyMS4xIDEyLjMsMjAuNzFMMTAuMjksMTguN0MxMC4wNiwxOC40NyA5Ljk2LDE4LjE2IDEwLDE3Ljg3VjEySDkuOTdMNC4yMSw0LjYyQzMuODcsNC4xOSAzLjk1LDMuNTYgNC4zOCwzLjIyQzQuNTcsMy4wOCA0Ljc4LDMgNSwzVjNIMTlWM0MxOS4yMiwzIDE5LjQzLDMuMDggMTkuNjIsMy4yMkMyMC4wNSwzLjU2IDIwLjEzLDQuMTkgMTkuNzksNC42MkwxNC4wMywxMkgxNFoiIC8+CiAgPC9nPgogIDxnIGNsYXNzPSJqcC1pY29uLWRvdCIgZmlsbD0iI0ZGRiI+CiAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE3IiByPSIzIj48L2NpcmNsZT4KICA8L2c+Cjwvc3ZnPgo=);
  --jp-icon-filter-list: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTEwIDE4aDR2LTJoLTR2MnpNMyA2djJoMThWNkgzem0zIDdoMTJ2LTJINnYyeiIvPgogIDwvZz4KPC9zdmc+Cg==);
  --jp-icon-filter: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiNGRkYiPgogICAgPHBhdGggZD0iTTE0LDEyVjE5Ljg4QzE0LjA0LDIwLjE4IDEzLjk0LDIwLjUgMTMuNzEsMjAuNzFDMTMuMzIsMjEuMSAxMi42OSwyMS4xIDEyLjMsMjAuNzFMMTAuMjksMTguN0MxMC4wNiwxOC40NyA5Ljk2LDE4LjE2IDEwLDE3Ljg3VjEySDkuOTdMNC4yMSw0LjYyQzMuODcsNC4xOSAzLjk1LDMuNTYgNC4zOCwzLjIyQzQuNTcsMy4wOCA0Ljc4LDMgNSwzVjNIMTlWM0MxOS4yMiwzIDE5LjQzLDMuMDggMTkuNjIsMy4yMkMyMC4wNSwzLjU2IDIwLjEzLDQuMTkgMTkuNzksNC42MkwxNC4wMywxMkgxNFoiIC8+CiAgPC9nPgo8L3N2Zz4K);
  --jp-icon-folder-favorite: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+CiAgPHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggY2xhc3M9ImpwLWljb24zIGpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iIzYxNjE2MSIgZD0iTTIwIDZoLThsLTItMkg0Yy0xLjEgMC0yIC45LTIgMnYxMmMwIDEuMS45IDIgMiAyaDE2YzEuMSAwIDItLjkgMi0yVjhjMC0xLjEtLjktMi0yLTJ6bS0yLjA2IDExTDE1IDE1LjI4IDEyLjA2IDE3bC43OC0zLjMzLTIuNTktMi4yNCAzLjQxLS4yOUwxNSA4bDEuMzQgMy4xNCAzLjQxLjI5LTIuNTkgMi4yNC43OCAzLjMzeiIvPgo8L3N2Zz4K);
  --jp-icon-folder: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMTAgNEg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yaC04bC0yLTJ6Ii8+Cjwvc3ZnPgo=);
  --jp-icon-home: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzAwMDAwMCI+CiAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGNsYXNzPSJqcC1pY29uMyBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiM2MTYxNjEiIGQ9Ik0xMCAyMHYtNmg0djZoNXYtOGgzTDEyIDMgMiAxMmgzdjh6Ii8+Cjwvc3ZnPgo=);
  --jp-icon-html5: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogIDxwYXRoIGNsYXNzPSJqcC1pY29uMCBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiMwMDAiIGQ9Ik0xMDguNCAwaDIzdjIyLjhoMjEuMlYwaDIzdjY5aC0yM1Y0NmgtMjF2MjNoLTIzLjJNMjA2IDIzaC0yMC4zVjBoNjMuN3YyM0gyMjl2NDZoLTIzbTUzLjUtNjloMjQuMWwxNC44IDI0LjNMMzEzLjIgMGgyNC4xdjY5aC0yM1YzNC44bC0xNi4xIDI0LjgtMTYuMS0yNC44VjY5aC0yMi42bTg5LjItNjloMjN2NDYuMmgzMi42VjY5aC01NS42Ii8+CiAgPHBhdGggY2xhc3M9ImpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iI2U0NGQyNiIgZD0iTTEwNy42IDQ3MWwtMzMtMzcwLjRoMzYyLjhsLTMzIDM3MC4yTDI1NS43IDUxMiIvPgogIDxwYXRoIGNsYXNzPSJqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiNmMTY1MjkiIGQ9Ik0yNTYgNDgwLjVWMTMxaDE0OC4zTDM3NiA0NDciLz4KICA8cGF0aCBjbGFzcz0ianAtaWNvbi1zZWxlY3RhYmxlLWludmVyc2UiIGZpbGw9IiNlYmViZWIiIGQ9Ik0xNDIgMTc2LjNoMTE0djQ1LjRoLTY0LjJsNC4yIDQ2LjVoNjB2NDUuM0gxNTQuNG0yIDIyLjhIMjAybDMuMiAzNi4zIDUwLjggMTMuNnY0Ny40bC05My4yLTI2Ii8+CiAgPHBhdGggY2xhc3M9ImpwLWljb24tc2VsZWN0YWJsZS1pbnZlcnNlIiBmaWxsPSIjZmZmIiBkPSJNMzY5LjYgMTc2LjNIMjU1Ljh2NDUuNGgxMDkuNm0tNC4xIDQ2LjVIMjU1Ljh2NDUuNGg1NmwtNS4zIDU5LTUwLjcgMTMuNnY0Ny4ybDkzLTI1LjgiLz4KPC9zdmc+Cg==);
  --jp-icon-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8cGF0aCBjbGFzcz0ianAtaWNvbi1icmFuZDQganAtaWNvbi1zZWxlY3RhYmxlLWludmVyc2UiIGZpbGw9IiNGRkYiIGQ9Ik0yLjIgMi4yaDE3LjV2MTcuNUgyLjJ6Ii8+CiAgPHBhdGggY2xhc3M9ImpwLWljb24tYnJhbmQwIGpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iIzNGNTFCNSIgZD0iTTIuMiAyLjJ2MTcuNWgxNy41bC4xLTE3LjVIMi4yem0xMi4xIDIuMmMxLjIgMCAyLjIgMSAyLjIgMi4ycy0xIDIuMi0yLjIgMi4yLTIuMi0xLTIuMi0yLjIgMS0yLjIgMi4yLTIuMnpNNC40IDE3LjZsMy4zLTguOCAzLjMgNi42IDIuMi0zLjIgNC40IDUuNEg0LjR6Ii8+Cjwvc3ZnPgo=);
  --jp-icon-info: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDUwLjk3OCA1MC45NzgiPgoJPGcgY2xhc3M9ImpwLWljb24zIiBmaWxsPSIjNjE2MTYxIj4KCQk8cGF0aCBkPSJNNDMuNTIsNy40NThDMzguNzExLDIuNjQ4LDMyLjMwNywwLDI1LjQ4OSwwQzE4LjY3LDAsMTIuMjY2LDIuNjQ4LDcuNDU4LDcuNDU4CgkJCWMtOS45NDMsOS45NDEtOS45NDMsMjYuMTE5LDAsMzYuMDYyYzQuODA5LDQuODA5LDExLjIxMiw3LjQ1NiwxOC4wMzEsNy40NThjMCwwLDAuMDAxLDAsMC4wMDIsMAoJCQljNi44MTYsMCwxMy4yMjEtMi42NDgsMTguMDI5LTcuNDU4YzQuODA5LTQuODA5LDcuNDU3LTExLjIxMiw3LjQ1Ny0xOC4wM0M1MC45NzcsMTguNjcsNDguMzI4LDEyLjI2Niw0My41Miw3LjQ1OHoKCQkJIE00Mi4xMDYsNDIuMTA1Yy00LjQzMiw0LjQzMS0xMC4zMzIsNi44NzItMTYuNjE1LDYuODcyaC0wLjAwMmMtNi4yODUtMC4wMDEtMTIuMTg3LTIuNDQxLTE2LjYxNy02Ljg3MgoJCQljLTkuMTYyLTkuMTYzLTkuMTYyLTI0LjA3MSwwLTMzLjIzM0MxMy4zMDMsNC40NCwxOS4yMDQsMiwyNS40ODksMmM2LjI4NCwwLDEyLjE4NiwyLjQ0LDE2LjYxNyw2Ljg3MgoJCQljNC40MzEsNC40MzEsNi44NzEsMTAuMzMyLDYuODcxLDE2LjYxN0M0OC45NzcsMzEuNzcyLDQ2LjUzNiwzNy42NzUsNDIuMTA2LDQyLjEwNXoiLz4KCQk8cGF0aCBkPSJNMjMuNTc4LDMyLjIxOGMtMC4wMjMtMS43MzQsMC4xNDMtMy4wNTksMC40OTYtMy45NzJjMC4zNTMtMC45MTMsMS4xMS0xLjk5NywyLjI3Mi0zLjI1MwoJCQljMC40NjgtMC41MzYsMC45MjMtMS4wNjIsMS4zNjctMS41NzVjMC42MjYtMC43NTMsMS4xMDQtMS40NzgsMS40MzYtMi4xNzVjMC4zMzEtMC43MDcsMC40OTUtMS41NDEsMC40OTUtMi41CgkJCWMwLTEuMDk2LTAuMjYtMi4wODgtMC43NzktMi45NzljLTAuNTY1LTAuODc5LTEuNTAxLTEuMzM2LTIuODA2LTEuMzY5Yy0xLjgwMiwwLjA1Ny0yLjk4NSwwLjY2Ny0zLjU1LDEuODMyCgkJCWMtMC4zMDEsMC41MzUtMC41MDMsMS4xNDEtMC42MDcsMS44MTRjLTAuMTM5LDAuNzA3LTAuMjA3LDEuNDMyLTAuMjA3LDIuMTc0aC0yLjkzN2MtMC4wOTEtMi4yMDgsMC40MDctNC4xMTQsMS40OTMtNS43MTkKCQkJYzEuMDYyLTEuNjQsMi44NTUtMi40ODEsNS4zNzgtMi41MjdjMi4xNiwwLjAyMywzLjg3NCwwLjYwOCw1LjE0MSwxLjc1OGMxLjI3OCwxLjE2LDEuOTI5LDIuNzY0LDEuOTUsNC44MTEKCQkJYzAsMS4xNDItMC4xMzcsMi4xMTEtMC40MSwyLjkxMWMtMC4zMDksMC44NDUtMC43MzEsMS41OTMtMS4yNjgsMi4yNDNjLTAuNDkyLDAuNjUtMS4wNjgsMS4zMTgtMS43MywyLjAwMgoJCQljLTAuNjUsMC42OTctMS4zMTMsMS40NzktMS45ODcsMi4zNDZjLTAuMjM5LDAuMzc3LTAuNDI5LDAuNzc3LTAuNTY1LDEuMTk5Yy0wLjE2LDAuOTU5LTAuMjE3LDEuOTUxLTAuMTcxLDIuOTc5CgkJCUMyNi41ODksMzIuMjE4LDIzLjU3OCwzMi4yMTgsMjMuNTc4LDMyLjIxOHogTTIzLjU3OCwzOC4yMnYtMy40ODRoMy4wNzZ2My40ODRIMjMuNTc4eiIvPgoJPC9nPgo8L3N2Zz4K);
  --jp-icon-inspector: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtaW5zcGVjdG9yLWljb24tY29sb3IganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMjAgNEg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMThjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY2YzAtMS4xLS45LTItMi0yem0tNSAxNEg0di00aDExdjR6bTAtNUg0VjloMTF2NHptNSA1aC00VjloNHY5eiIvPgo8L3N2Zz4K);
  --jp-icon-json: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8ZyBjbGFzcz0ianAtanNvbi1pY29uLWNvbG9yIGpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iI0Y5QTgyNSI+CiAgICA8cGF0aCBkPSJNMjAuMiAxMS44Yy0xLjYgMC0xLjcuNS0xLjcgMSAwIC40LjEuOS4xIDEuMy4xLjUuMS45LjEgMS4zIDAgMS43LTEuNCAyLjMtMy41IDIuM2gtLjl2LTEuOWguNWMxLjEgMCAxLjQgMCAxLjQtLjggMC0uMyAwLS42LS4xLTEgMC0uNC0uMS0uOC0uMS0xLjIgMC0xLjMgMC0xLjggMS4zLTItMS4zLS4yLTEuMy0uNy0xLjMtMiAwLS40LjEtLjguMS0xLjIuMS0uNC4xLS43LjEtMSAwLS44LS40LS43LTEuNC0uOGgtLjVWNC4xaC45YzIuMiAwIDMuNS43IDMuNSAyLjMgMCAuNC0uMS45LS4xIDEuMy0uMS41LS4xLjktLjEgMS4zIDAgLjUuMiAxIDEuNyAxdjEuOHpNMS44IDEwLjFjMS42IDAgMS43LS41IDEuNy0xIDAtLjQtLjEtLjktLjEtMS4zLS4xLS41LS4xLS45LS4xLTEuMyAwLTEuNiAxLjQtMi4zIDMuNS0yLjNoLjl2MS45aC0uNWMtMSAwLTEuNCAwLTEuNC44IDAgLjMgMCAuNi4xIDEgMCAuMi4xLjYuMSAxIDAgMS4zIDAgMS44LTEuMyAyQzYgMTEuMiA2IDExLjcgNiAxM2MwIC40LS4xLjgtLjEgMS4yLS4xLjMtLjEuNy0uMSAxIDAgLjguMy44IDEuNC44aC41djEuOWgtLjljLTIuMSAwLTMuNS0uNi0zLjUtMi4zIDAtLjQuMS0uOS4xLTEuMy4xLS41LjEtLjkuMS0xLjMgMC0uNS0uMi0xLTEuNy0xdi0xLjl6Ii8+CiAgICA8Y2lyY2xlIGN4PSIxMSIgY3k9IjEzLjgiIHI9IjIuMSIvPgogICAgPGNpcmNsZSBjeD0iMTEiIGN5PSI4LjIiIHI9IjIuMSIvPgogIDwvZz4KPC9zdmc+Cg==);
  --jp-icon-julia: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDMyNSAzMDAiPgogIDxnIGNsYXNzPSJqcC1icmFuZDAganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjY2IzYzMzIj4KICAgIDxwYXRoIGQ9Ik0gMTUwLjg5ODQzOCAyMjUgQyAxNTAuODk4NDM4IDI2Ni40MjE4NzUgMTE3LjMyMDMxMiAzMDAgNzUuODk4NDM4IDMwMCBDIDM0LjQ3NjU2MiAzMDAgMC44OTg0MzggMjY2LjQyMTg3NSAwLjg5ODQzOCAyMjUgQyAwLjg5ODQzOCAxODMuNTc4MTI1IDM0LjQ3NjU2MiAxNTAgNzUuODk4NDM4IDE1MCBDIDExNy4zMjAzMTIgMTUwIDE1MC44OTg0MzggMTgzLjU3ODEyNSAxNTAuODk4NDM4IDIyNSIvPgogIDwvZz4KICA8ZyBjbGFzcz0ianAtYnJhbmQwIGpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iIzM4OTgyNiI+CiAgICA8cGF0aCBkPSJNIDIzNy41IDc1IEMgMjM3LjUgMTE2LjQyMTg3NSAyMDMuOTIxODc1IDE1MCAxNjIuNSAxNTAgQyAxMjEuMDc4MTI1IDE1MCA4Ny41IDExNi40MjE4NzUgODcuNSA3NSBDIDg3LjUgMzMuNTc4MTI1IDEyMS4wNzgxMjUgMCAxNjIuNSAwIEMgMjAzLjkyMTg3NSAwIDIzNy41IDMzLjU3ODEyNSAyMzcuNSA3NSIvPgogIDwvZz4KICA8ZyBjbGFzcz0ianAtYnJhbmQwIGpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iIzk1NThiMiI+CiAgICA8cGF0aCBkPSJNIDMyNC4xMDE1NjIgMjI1IEMgMzI0LjEwMTU2MiAyNjYuNDIxODc1IDI5MC41MjM0MzggMzAwIDI0OS4xMDE1NjIgMzAwIEMgMjA3LjY3OTY4OCAzMDAgMTc0LjEwMTU2MiAyNjYuNDIxODc1IDE3NC4xMDE1NjIgMjI1IEMgMTc0LjEwMTU2MiAxODMuNTc4MTI1IDIwNy42Nzk2ODggMTUwIDI0OS4xMDE1NjIgMTUwIEMgMjkwLjUyMzQzOCAxNTAgMzI0LjEwMTU2MiAxODMuNTc4MTI1IDMyNC4xMDE1NjIgMjI1Ii8+CiAgPC9nPgo8L3N2Zz4K);
  --jp-icon-jupyter-favicon: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUyIiBoZWlnaHQ9IjE2NSIgdmlld0JveD0iMCAwIDE1MiAxNjUiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgPGcgY2xhc3M9ImpwLWp1cHl0ZXItaWNvbi1jb2xvciIgZmlsbD0iI0YzNzcyNiI+CiAgICA8cGF0aCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjA3ODk0NywgMTEwLjU4MjkyNykiIGQ9Ik03NS45NDIyODQyLDI5LjU4MDQ1NjEgQzQzLjMwMjM5NDcsMjkuNTgwNDU2MSAxNC43OTY3ODMyLDE3LjY1MzQ2MzQgMCwwIEM1LjUxMDgzMjExLDE1Ljg0MDY4MjkgMTUuNzgxNTM4OSwyOS41NjY3NzMyIDI5LjM5MDQ5NDcsMzkuMjc4NDE3MSBDNDIuOTk5Nyw0OC45ODk4NTM3IDU5LjI3MzcsNTQuMjA2NzgwNSA3NS45NjA1Nzg5LDU0LjIwNjc4MDUgQzkyLjY0NzQ1NzksNTQuMjA2NzgwNSAxMDguOTIxNDU4LDQ4Ljk4OTg1MzcgMTIyLjUzMDY2MywzOS4yNzg0MTcxIEMxMzYuMTM5NDUzLDI5LjU2Njc3MzIgMTQ2LjQxMDI4NCwxNS44NDA2ODI5IDE1MS45MjExNTgsMCBDMTM3LjA4Nzg2OCwxNy42NTM0NjM0IDEwOC41ODI1ODksMjkuNTgwNDU2MSA3NS45NDIyODQyLDI5LjU4MDQ1NjEgTDc1Ljk0MjI4NDIsMjkuNTgwNDU2MSBaIiAvPgogICAgPHBhdGggdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMzczNjgsIDAuNzA0ODc4KSIgZD0iTTc1Ljk3ODQ1NzksMjQuNjI2NDA3MyBDMTA4LjYxODc2MywyNC42MjY0MDczIDEzNy4xMjQ0NTgsMzYuNTUzNDQxNSAxNTEuOTIxMTU4LDU0LjIwNjc4MDUgQzE0Ni40MTAyODQsMzguMzY2MjIyIDEzNi4xMzk0NTMsMjQuNjQwMTMxNyAxMjIuNTMwNjYzLDE0LjkyODQ4NzggQzEwOC45MjE0NTgsNS4yMTY4NDM5IDkyLjY0NzQ1NzksMCA3NS45NjA1Nzg5LDAgQzU5LjI3MzcsMCA0Mi45OTk3LDUuMjE2ODQzOSAyOS4zOTA0OTQ3LDE0LjkyODQ4NzggQzE1Ljc4MTUzODksMjQuNjQwMTMxNyA1LjUxMDgzMjExLDM4LjM2NjIyMiAwLDU0LjIwNjc4MDUgQzE0LjgzMzA4MTYsMzYuNTg5OTI5MyA0My4zMzg1Njg0LDI0LjYyNjQwNzMgNzUuOTc4NDU3OSwyNC42MjY0MDczIEw3NS45Nzg0NTc5LDI0LjYyNjQwNzMgWiIgLz4KICA8L2c+Cjwvc3ZnPgo=);
  --jp-icon-jupyter: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzkiIGhlaWdodD0iNTEiIHZpZXdCb3g9IjAgMCAzOSA1MSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTYzOCAtMjI4MSkiPgogICAgIDxnIGNsYXNzPSJqcC1qdXB5dGVyLWljb24tY29sb3IiIGZpbGw9IiNGMzc3MjYiPgogICAgICA8cGF0aCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNjM5Ljc0IDIzMTEuOTgpIiBkPSJNIDE4LjI2NDYgNy4xMzQxMUMgMTAuNDE0NSA3LjEzNDExIDMuNTU4NzIgNC4yNTc2IDAgMEMgMS4zMjUzOSAzLjgyMDQgMy43OTU1NiA3LjEzMDgxIDcuMDY4NiA5LjQ3MzAzQyAxMC4zNDE3IDExLjgxNTIgMTQuMjU1NyAxMy4wNzM0IDE4LjI2OSAxMy4wNzM0QyAyMi4yODIzIDEzLjA3MzQgMjYuMTk2MyAxMS44MTUyIDI5LjQ2OTQgOS40NzMwM0MgMzIuNzQyNCA3LjEzMDgxIDM1LjIxMjYgMy44MjA0IDM2LjUzOCAwQyAzMi45NzA1IDQuMjU3NiAyNi4xMTQ4IDcuMTM0MTEgMTguMjY0NiA3LjEzNDExWiIvPgogICAgICA8cGF0aCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNjM5LjczIDIyODUuNDgpIiBkPSJNIDE4LjI3MzMgNS45MzkzMUMgMjYuMTIzNSA1LjkzOTMxIDMyLjk3OTMgOC44MTU4MyAzNi41MzggMTMuMDczNEMgMzUuMjEyNiA5LjI1MzAzIDMyLjc0MjQgNS45NDI2MiAyOS40Njk0IDMuNjAwNEMgMjYuMTk2MyAxLjI1ODE4IDIyLjI4MjMgMCAxOC4yNjkgMEMgMTQuMjU1NyAwIDEwLjM0MTcgMS4yNTgxOCA3LjA2ODYgMy42MDA0QyAzLjc5NTU2IDUuOTQyNjIgMS4zMjUzOSA5LjI1MzAzIDAgMTMuMDczNEMgMy41Njc0NSA4LjgyNDYzIDEwLjQyMzIgNS45MzkzMSAxOC4yNzMzIDUuOTM5MzFaIi8+CiAgICA8L2c+CiAgICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgICA8cGF0aCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNjY5LjMgMjI4MS4zMSkiIGQ9Ik0gNS44OTM1MyAyLjg0NEMgNS45MTg4OSAzLjQzMTY1IDUuNzcwODUgNC4wMTM2NyA1LjQ2ODE1IDQuNTE2NDVDIDUuMTY1NDUgNS4wMTkyMiA0LjcyMTY4IDUuNDIwMTUgNC4xOTI5OSA1LjY2ODUxQyAzLjY2NDMgNS45MTY4OCAzLjA3NDQ0IDYuMDAxNTEgMi40OTgwNSA1LjkxMTcxQyAxLjkyMTY2IDUuODIxOSAxLjM4NDYzIDUuNTYxNyAwLjk1NDg5OCA1LjE2NDAxQyAwLjUyNTE3IDQuNzY2MzMgMC4yMjIwNTYgNC4yNDkwMyAwLjA4MzkwMzcgMy42Nzc1N0MgLTAuMDU0MjQ4MyAzLjEwNjExIC0wLjAyMTIzIDIuNTA2MTcgMC4xNzg3ODEgMS45NTM2NEMgMC4zNzg3OTMgMS40MDExIDAuNzM2ODA5IDAuOTIwODE3IDEuMjA3NTQgMC41NzM1MzhDIDEuNjc4MjYgMC4yMjYyNTkgMi4yNDA1NSAwLjAyNzU5MTkgMi44MjMyNiAwLjAwMjY3MjI5QyAzLjYwMzg5IC0wLjAzMDcxMTUgNC4zNjU3MyAwLjI0OTc4OSA0Ljk0MTQyIDAuNzgyNTUxQyA1LjUxNzExIDEuMzE1MzEgNS44NTk1NiAyLjA1Njc2IDUuODkzNTMgMi44NDRaIi8+CiAgICAgIDxwYXRoIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2MzkuOCAyMzIzLjgxKSIgZD0iTSA3LjQyNzg5IDMuNTgzMzhDIDcuNDYwMDggNC4zMjQzIDcuMjczNTUgNS4wNTgxOSA2Ljg5MTkzIDUuNjkyMTNDIDYuNTEwMzEgNi4zMjYwNyA1Ljk1MDc1IDYuODMxNTYgNS4yODQxMSA3LjE0NDZDIDQuNjE3NDcgNy40NTc2MyAzLjg3MzcxIDcuNTY0MTQgMy4xNDcwMiA3LjQ1MDYzQyAyLjQyMDMyIDcuMzM3MTIgMS43NDMzNiA3LjAwODcgMS4yMDE4NCA2LjUwNjk1QyAwLjY2MDMyOCA2LjAwNTIgMC4yNzg2MSA1LjM1MjY4IDAuMTA1MDE3IDQuNjMyMDJDIC0wLjA2ODU3NTcgMy45MTEzNSAtMC4wMjYyMzYxIDMuMTU0OTQgMC4yMjY2NzUgMi40NTg1NkMgMC40Nzk1ODcgMS43NjIxNyAwLjkzMTY5NyAxLjE1NzEzIDEuNTI1NzYgMC43MjAwMzNDIDIuMTE5ODMgMC4yODI5MzUgMi44MjkxNCAwLjAzMzQzOTUgMy41NjM4OSAwLjAwMzEzMzQ0QyA0LjU0NjY3IC0wLjAzNzQwMzMgNS41MDUyOSAwLjMxNjcwNiA2LjIyOTYxIDAuOTg3ODM1QyA2Ljk1MzkzIDEuNjU4OTYgNy4zODQ4NCAyLjU5MjM1IDcuNDI3ODkgMy41ODMzOEwgNy40Mjc4OSAzLjU4MzM4WiIvPgogICAgICA8cGF0aCB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNjM4LjM2IDIyODYuMDYpIiBkPSJNIDIuMjc0NzEgNC4zOTYyOUMgMS44NDM2MyA0LjQxNTA4IDEuNDE2NzEgNC4zMDQ0NSAxLjA0Nzk5IDQuMDc4NDNDIDAuNjc5MjY4IDMuODUyNCAwLjM4NTMyOCAzLjUyMTE0IDAuMjAzMzcxIDMuMTI2NTZDIDAuMDIxNDEzNiAyLjczMTk4IC0wLjA0MDM3OTggMi4yOTE4MyAwLjAyNTgxMTYgMS44NjE4MUMgMC4wOTIwMDMxIDEuNDMxOCAwLjI4MzIwNCAxLjAzMTI2IDAuNTc1MjEzIDAuNzEwODgzQyAwLjg2NzIyMiAwLjM5MDUxIDEuMjQ2OTEgMC4xNjQ3MDggMS42NjYyMiAwLjA2MjA1OTJDIDIuMDg1NTMgLTAuMDQwNTg5NyAyLjUyNTYxIC0wLjAxNTQ3MTQgMi45MzA3NiAwLjEzNDIzNUMgMy4zMzU5MSAwLjI4Mzk0MSAzLjY4NzkyIDAuNTUxNTA1IDMuOTQyMjIgMC45MDMwNkMgNC4xOTY1MiAxLjI1NDYyIDQuMzQxNjkgMS42NzQzNiA0LjM1OTM1IDIuMTA5MTZDIDQuMzgyOTkgMi42OTEwNyA0LjE3Njc4IDMuMjU4NjkgMy43ODU5NyAzLjY4NzQ2QyAzLjM5NTE2IDQuMTE2MjQgMi44NTE2NiA0LjM3MTE2IDIuMjc0NzEgNC4zOTYyOUwgMi4yNzQ3MSA0LjM5NjI5WiIvPgogICAgPC9nPgogIDwvZz4+Cjwvc3ZnPgo=);
  --jp-icon-jupyterlab-wordmark: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDAiIHZpZXdCb3g9IjAgMCAxODYwLjggNDc1Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjIiIGZpbGw9IiM0RTRFNEUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQ4MC4xMzY0MDEsIDY0LjI3MTQ5MykiPgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIDU4Ljg3NTU2NikiPgogICAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjA4NzYwMywgMC4xNDAyOTQpIj4KICAgICAgICA8cGF0aCBkPSJNLTQyNi45LDE2OS44YzAsNDguNy0zLjcsNjQuNy0xMy42LDc2LjRjLTEwLjgsMTAtMjUsMTUuNS0zOS43LDE1LjVsMy43LDI5IGMyMi44LDAuMyw0NC44LTcuOSw2MS45LTIzLjFjMTcuOC0xOC41LDI0LTQ0LjEsMjQtODMuM1YwSC00Mjd2MTcwLjFMLTQyNi45LDE2OS44TC00MjYuOSwxNjkuOHoiLz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTU1LjA0NTI5NiwgNTYuODM3MTA0KSI+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEuNTYyNDUzLCAxLjc5OTg0MikiPgogICAgICAgIDxwYXRoIGQ9Ik0tMzEyLDE0OGMwLDIxLDAsMzkuNSwxLjcsNTUuNGgtMzEuOGwtMi4xLTMzLjNoLTAuOGMtNi43LDExLjYtMTYuNCwyMS4zLTI4LDI3LjkgYy0xMS42LDYuNi0yNC44LDEwLTM4LjIsOS44Yy0zMS40LDAtNjktMTcuNy02OS04OVYwaDM2LjR2MTEyLjdjMCwzOC43LDExLjYsNjQuNyw0NC42LDY0LjdjMTAuMy0wLjIsMjAuNC0zLjUsMjguOS05LjQgYzguNS01LjksMTUuMS0xNC4zLDE4LjktMjMuOWMyLjItNi4xLDMuMy0xMi41LDMuMy0xOC45VjAuMmgzNi40VjE0OEgtMzEyTC0zMTIsMTQ4eiIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzOTAuMDEzMzIyLCA1My40Nzk2MzgpIj4KICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMS43MDY0NTgsIDAuMjMxNDI1KSI+CiAgICAgICAgPHBhdGggZD0iTS00NzguNiw3MS40YzAtMjYtMC44LTQ3LTEuNy02Ni43aDMyLjdsMS43LDM0LjhoMC44YzcuMS0xMi41LDE3LjUtMjIuOCwzMC4xLTI5LjcgYzEyLjUtNywyNi43LTEwLjMsNDEtOS44YzQ4LjMsMCw4NC43LDQxLjcsODQuNywxMDMuM2MwLDczLjEtNDMuNywxMDkuMi05MSwxMDkuMmMtMTIuMSwwLjUtMjQuMi0yLjItMzUtNy44IGMtMTAuOC01LjYtMTkuOS0xMy45LTI2LjYtMjQuMmgtMC44VjI5MWgtMzZ2LTIyMEwtNDc4LjYsNzEuNEwtNDc4LjYsNzEuNHogTS00NDIuNiwxMjUuNmMwLjEsNS4xLDAuNiwxMC4xLDEuNywxNS4xIGMzLDEyLjMsOS45LDIzLjMsMTkuOCwzMS4xYzkuOSw3LjgsMjIuMSwxMi4xLDM0LjcsMTIuMWMzOC41LDAsNjAuNy0zMS45LDYwLjctNzguNWMwLTQwLjctMjEuMS03NS42LTU5LjUtNzUuNiBjLTEyLjksMC40LTI1LjMsNS4xLTM1LjMsMTMuNGMtOS45LDguMy0xNi45LDE5LjctMTkuNiwzMi40Yy0xLjUsNC45LTIuMywxMC0yLjUsMTUuMVYxMjUuNkwtNDQyLjYsMTI1LjZMLTQ0Mi42LDEyNS42eiIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2MDYuNzQwNzI2LCA1Ni44MzcxMDQpIj4KICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC43NTEyMjYsIDEuOTg5Mjk5KSI+CiAgICAgICAgPHBhdGggZD0iTS00NDAuOCwwbDQzLjcsMTIwLjFjNC41LDEzLjQsOS41LDI5LjQsMTIuOCw0MS43aDAuOGMzLjctMTIuMiw3LjktMjcuNywxMi44LTQyLjQgbDM5LjctMTE5LjJoMzguNUwtMzQ2LjksMTQ1Yy0yNiw2OS43LTQzLjcsMTA1LjQtNjguNiwxMjcuMmMtMTIuNSwxMS43LTI3LjksMjAtNDQuNiwyMy45bC05LjEtMzEuMSBjMTEuNy0zLjksMjIuNS0xMC4xLDMxLjgtMTguMWMxMy4yLTExLjEsMjMuNy0yNS4yLDMwLjYtNDEuMmMxLjUtMi44LDIuNS01LjcsMi45LTguOGMtMC4zLTMuMy0xLjItNi42LTIuNS05LjdMLTQ4MC4yLDAuMSBoMzkuN0wtNDQwLjgsMEwtNDQwLjgsMHoiLz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoODIyLjc0ODEwNCwgMC4wMDAwMDApIj4KICAgICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMS40NjQwNTAsIDAuMzc4OTE0KSI+CiAgICAgICAgPHBhdGggZD0iTS00MTMuNywwdjU4LjNoNTJ2MjguMmgtNTJWMTk2YzAsMjUsNywzOS41LDI3LjMsMzkuNWM3LjEsMC4xLDE0LjItMC43LDIxLjEtMi41IGwxLjcsMjcuN2MtMTAuMywzLjctMjEuMyw1LjQtMzIuMiw1Yy03LjMsMC40LTE0LjYtMC43LTIxLjMtMy40Yy02LjgtMi43LTEyLjktNi44LTE3LjktMTIuMWMtMTAuMy0xMC45LTE0LjEtMjktMTQuMS01Mi45IFY4Ni41aC0zMVY1OC4zaDMxVjkuNkwtNDEzLjcsMEwtNDEzLjcsMHoiLz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOTc0LjQzMzI4NiwgNTMuNDc5NjM4KSI+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuOTkwMDM0LCAwLjYxMDMzOSkiPgogICAgICAgIDxwYXRoIGQ9Ik0tNDQ1LjgsMTEzYzAuOCw1MCwzMi4yLDcwLjYsNjguNiw3MC42YzE5LDAuNiwzNy45LTMsNTUuMy0xMC41bDYuMiwyNi40IGMtMjAuOSw4LjktNDMuNSwxMy4xLTY2LjIsMTIuNmMtNjEuNSwwLTk4LjMtNDEuMi05OC4zLTEwMi41Qy00ODAuMiw0OC4yLTQ0NC43LDAtMzg2LjUsMGM2NS4yLDAsODIuNyw1OC4zLDgyLjcsOTUuNyBjLTAuMSw1LjgtMC41LDExLjUtMS4yLDE3LjJoLTE0MC42SC00NDUuOEwtNDQ1LjgsMTEzeiBNLTMzOS4yLDg2LjZjMC40LTIzLjUtOS41LTYwLjEtNTAuNC02MC4xIGMtMzYuOCwwLTUyLjgsMzQuNC01NS43LDYwLjFILTMzOS4yTC0zMzkuMiw4Ni42TC0zMzkuMiw4Ni42eiIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgICA8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMjAxLjk2MTA1OCwgNTMuNDc5NjM4KSI+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEuMTc5NjQwLCAwLjcwNTA2OCkiPgogICAgICAgIDxwYXRoIGQ9Ik0tNDc4LjYsNjhjMC0yMy45LTAuNC00NC41LTEuNy02My40aDMxLjhsMS4yLDM5LjloMS43YzkuMS0yNy4zLDMxLTQ0LjUsNTUuMy00NC41IGMzLjUtMC4xLDcsMC40LDEwLjMsMS4ydjM0LjhjLTQuMS0wLjktOC4yLTEuMy0xMi40LTEuMmMtMjUuNiwwLTQzLjcsMTkuNy00OC43LDQ3LjRjLTEsNS43LTEuNiwxMS41LTEuNywxNy4ydjEwOC4zaC0zNlY2OCBMLTQ3OC42LDY4eiIvPgogICAgICA8L2c+CiAgICA8L2c+CiAgPC9nPgoKICA8ZyBjbGFzcz0ianAtaWNvbi13YXJuMCIgZmlsbD0iI0YzNzcyNiI+CiAgICA8cGF0aCBkPSJNMTM1Mi4zLDMyNi4yaDM3VjI4aC0zN1YzMjYuMnogTTE2MDQuOCwzMjYuMmMtMi41LTEzLjktMy40LTMxLjEtMy40LTQ4Ljd2LTc2IGMwLTQwLjctMTUuMS04My4xLTc3LjMtODMuMWMtMjUuNiwwLTUwLDcuMS02Ni44LDE4LjFsOC40LDI0LjRjMTQuMy05LjIsMzQtMTUuMSw1My0xNS4xYzQxLjYsMCw0Ni4yLDMwLjIsNDYuMiw0N3Y0LjIgYy03OC42LTAuNC0xMjIuMywyNi41LTEyMi4zLDc1LjZjMCwyOS40LDIxLDU4LjQsNjIuMiw1OC40YzI5LDAsNTAuOS0xNC4zLDYyLjItMzAuMmgxLjNsMi45LDI1LjZIMTYwNC44eiBNMTU2NS43LDI1Ny43IGMwLDMuOC0wLjgsOC0yLjEsMTEuOGMtNS45LDE3LjItMjIuNywzNC00OS4yLDM0Yy0xOC45LDAtMzQuOS0xMS4zLTM0LjktMzUuM2MwLTM5LjUsNDUuOC00Ni42LDg2LjItNDUuOFYyNTcuN3ogTTE2OTguNSwzMjYuMiBsMS43LTMzLjZoMS4zYzE1LjEsMjYuOSwzOC43LDM4LjIsNjguMSwzOC4yYzQ1LjQsMCw5MS4yLTM2LjEsOTEuMi0xMDguOGMwLjQtNjEuNy0zNS4zLTEwMy43LTg1LjctMTAzLjcgYy0zMi44LDAtNTYuMywxNC43LTY5LjMsMzcuNGgtMC44VjI4aC0zNi42djI0NS43YzAsMTguMS0wLjgsMzguNi0xLjcsNTIuNUgxNjk4LjV6IE0xNzA0LjgsMjA4LjJjMC01LjksMS4zLTEwLjksMi4xLTE1LjEgYzcuNi0yOC4xLDMxLjEtNDUuNCw1Ni4zLTQ1LjRjMzkuNSwwLDYwLjUsMzQuOSw2MC41LDc1LjZjMCw0Ni42LTIzLjEsNzguMS02MS44LDc4LjFjLTI2LjksMC00OC4zLTE3LjYtNTUuNS00My4zIGMtMC44LTQuMi0xLjctOC44LTEuNy0xMy40VjIwOC4yeiIvPgogIDwvZz4KPC9zdmc+Cg==);
  --jp-icon-kernel: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxwYXRoIGNsYXNzPSJqcC1pY29uMiIgZmlsbD0iIzYxNjE2MSIgZD0iTTE1IDlIOXY2aDZWOXptLTIgNGgtMnYtMmgydjJ6bTgtMlY5aC0yVjdjMC0xLjEtLjktMi0yLTJoLTJWM2gtMnYyaC0yVjNIOXYySDdjLTEuMSAwLTIgLjktMiAydjJIM3YyaDJ2MkgzdjJoMnYyYzAgMS4xLjkgMiAyIDJoMnYyaDJ2LTJoMnYyaDJ2LTJoMmMxLjEgMCAyLS45IDItMnYtMmgydi0yaC0ydi0yaDJ6bS00IDZIN1Y3aDEwdjEweiIvPgo8L3N2Zz4K);
  --jp-icon-keyboard: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMjAgNUg0Yy0xLjEgMC0xLjk5LjktMS45OSAyTDIgMTdjMCAxLjEuOSAyIDIgMmgxNmMxLjEgMCAyLS45IDItMlY3YzAtMS4xLS45LTItMi0yem0tOSAzaDJ2MmgtMlY4em0wIDNoMnYyaC0ydi0yek04IDhoMnYySDhWOHptMCAzaDJ2Mkg4di0yem0tMSAySDV2LTJoMnYyem0wLTNINVY4aDJ2MnptOSA3SDh2LTJoOHYyem0wLTRoLTJ2LTJoMnYyem0wLTNoLTJWOGgydjJ6bTMgM2gtMnYtMmgydjJ6bTAtM2gtMlY4aDJ2MnoiLz4KPC9zdmc+Cg==);
  --jp-icon-launch: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzIgMzIiIHdpZHRoPSIzMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxwYXRoIGQ9Ik0yNiwyOEg2YTIuMDAyNywyLjAwMjcsMCwwLDEtMi0yVjZBMi4wMDI3LDIuMDAyNywwLDAsMSw2LDRIMTZWNkg2VjI2SDI2VjE2aDJWMjZBMi4wMDI3LDIuMDAyNywwLDAsMSwyNiwyOFoiLz4KICAgIDxwb2x5Z29uIHBvaW50cz0iMjAgMiAyMCA0IDI2LjU4NiA0IDE4IDEyLjU4NiAxOS40MTQgMTQgMjggNS40MTQgMjggMTIgMzAgMTIgMzAgMiAyMCAyIi8+CiAgPC9nPgo8L3N2Zz4K);
  --jp-icon-launcher: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMTkgMTlINVY1aDdWM0g1YTIgMiAwIDAwLTIgMnYxNGEyIDIgMCAwMDIgMmgxNGMxLjEgMCAyLS45IDItMnYtN2gtMnY3ek0xNCAzdjJoMy41OWwtOS44MyA5LjgzIDEuNDEgMS40MUwxOSA2LjQxVjEwaDJWM2gtN3oiLz4KPC9zdmc+Cg==);
  --jp-icon-line-form: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxwYXRoIGZpbGw9IndoaXRlIiBkPSJNNS44OCA0LjEyTDEzLjc2IDEybC03Ljg4IDcuODhMOCAyMmwxMC0xMEw4IDJ6Ii8+Cjwvc3ZnPgo=);
  --jp-icon-link: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTMuOSAxMmMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMWg0VjdIN2MtMi43NiAwLTUgMi4yNC01IDVzMi4yNCA1IDUgNWg0di0xLjlIN2MtMS43MSAwLTMuMS0xLjM5LTMuMS0zLjF6TTggMTNoOHYtMkg4djJ6bTktNmgtNHYxLjloNGMxLjcxIDAgMy4xIDEuMzkgMy4xIDMuMXMtMS4zOSAzLjEtMy4xIDMuMWgtNFYxN2g0YzIuNzYgMCA1LTIuMjQgNS01cy0yLjI0LTUtNS01eiIvPgogIDwvZz4KPC9zdmc+Cg==);
  --jp-icon-list: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxwYXRoIGNsYXNzPSJqcC1pY29uMiBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiM2MTYxNjEiIGQ9Ik0xOSA1djE0SDVWNWgxNG0xLjEtMkgzLjljLS41IDAtLjkuNC0uOS45djE2LjJjMCAuNC40LjkuOS45aDE2LjJjLjQgMCAuOS0uNS45LS45VjMuOWMwLS41LS41LS45LS45LS45ek0xMSA3aDZ2MmgtNlY3em0wIDRoNnYyaC02di0yem0wIDRoNnYyaC02ek03IDdoMnYySDd6bTAgNGgydjJIN3ptMCA0aDJ2Mkg3eiIvPgo8L3N2Zz4K);
  --jp-icon-markdown: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8cGF0aCBjbGFzcz0ianAtaWNvbi1jb250cmFzdDAganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjN0IxRkEyIiBkPSJNNSAxNC45aDEybC02LjEgNnptOS40LTYuOGMwLTEuMy0uMS0yLjktLjEtNC41LS40IDEuNC0uOSAyLjktMS4zIDQuM2wtMS4zIDQuM2gtMkw4LjUgNy45Yy0uNC0xLjMtLjctMi45LTEtNC4zLS4xIDEuNi0uMSAzLjItLjIgNC42TDcgMTIuNEg0LjhsLjctMTFoMy4zTDEwIDVjLjQgMS4yLjcgMi43IDEgMy45LjMtMS4yLjctMi42IDEtMy45bDEuMi0zLjdoMy4zbC42IDExaC0yLjRsLS4zLTQuMnoiLz4KPC9zdmc+Cg==);
  --jp-icon-move-down: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggY2xhc3M9ImpwLWljb24zIiBkPSJNMTIuNDcxIDcuNTI4OTlDMTIuNzYzMiA3LjIzNjg0IDEyLjc2MzIgNi43NjMxNiAxMi40NzEgNi40NzEwMVY2LjQ3MTAxQzEyLjE3OSA2LjE3OTA1IDExLjcwNTcgNi4xNzg4NCAxMS40MTM1IDYuNDcwNTRMNy43NSAxMC4xMjc1VjEuNzVDNy43NSAxLjMzNTc5IDcuNDE0MjEgMSA3IDFWMUM2LjU4NTc5IDEgNi4yNSAxLjMzNTc5IDYuMjUgMS43NVYxMC4xMjc1TDIuNTk3MjYgNi40NjgyMkMyLjMwMzM4IDYuMTczODEgMS44MjY0MSA2LjE3MzU5IDEuNTMyMjYgNi40Njc3NFY2LjQ2Nzc0QzEuMjM4MyA2Ljc2MTcgMS4yMzgzIDcuMjM4MyAxLjUzMjI2IDcuNTMyMjZMNi4yOTI4OSAxMi4yOTI5QzYuNjgzNDIgMTIuNjgzNCA3LjMxNjU4IDEyLjY4MzQgNy43MDcxMSAxMi4yOTI5TDEyLjQ3MSA3LjUyODk5WiIgZmlsbD0iIzYxNjE2MSIvPgo8L3N2Zz4K);
  --jp-icon-move-up: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAxNCAxNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggY2xhc3M9ImpwLWljb24zIiBkPSJNMS41Mjg5OSA2LjQ3MTAxQzEuMjM2ODQgNi43NjMxNiAxLjIzNjg0IDcuMjM2ODQgMS41Mjg5OSA3LjUyODk5VjcuNTI4OTlDMS44MjA5NSA3LjgyMDk1IDIuMjk0MjYgNy44MjExNiAyLjU4NjQ5IDcuNTI5NDZMNi4yNSAzLjg3MjVWMTIuMjVDNi4yNSAxMi42NjQyIDYuNTg1NzkgMTMgNyAxM1YxM0M3LjQxNDIxIDEzIDcuNzUgMTIuNjY0MiA3Ljc1IDEyLjI1VjMuODcyNUwxMS40MDI3IDcuNTMxNzhDMTEuNjk2NiA3LjgyNjE5IDEyLjE3MzYgNy44MjY0MSAxMi40Njc3IDcuNTMyMjZWNy41MzIyNkMxMi43NjE3IDcuMjM4MyAxMi43NjE3IDYuNzYxNyAxMi40Njc3IDYuNDY3NzRMNy43MDcxMSAxLjcwNzExQzcuMzE2NTggMS4zMTY1OCA2LjY4MzQyIDEuMzE2NTggNi4yOTI4OSAxLjcwNzExTDEuNTI4OTkgNi40NzEwMVoiIGZpbGw9IiM2MTYxNjEiLz4KPC9zdmc+Cg==);
  --jp-icon-new-folder: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTIwIDZoLThsLTItMkg0Yy0xLjExIDAtMS45OS44OS0xLjk5IDJMMiAxOGMwIDEuMTEuODkgMiAyIDJoMTZjMS4xMSAwIDItLjg5IDItMlY4YzAtMS4xMS0uODktMi0yLTJ6bS0xIDhoLTN2M2gtMnYtM2gtM3YtMmgzVjloMnYzaDN2MnoiLz4KICA8L2c+Cjwvc3ZnPgo=);
  --jp-icon-not-trusted: url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI1IDI1Ij4KICAgIDxwYXRoIGNsYXNzPSJqcC1pY29uMiIgc3Ryb2tlPSIjMzMzMzMzIiBzdHJva2Utd2lkdGg9IjIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMgMykiIGQ9Ik0xLjg2MDk0IDExLjQ0MDlDMC44MjY0NDggOC43NzAyNyAwLjg2Mzc3OSA2LjA1NzY0IDEuMjQ5MDcgNC4xOTkzMkMyLjQ4MjA2IDMuOTMzNDcgNC4wODA2OCAzLjQwMzQ3IDUuNjAxMDIgMi44NDQ5QzcuMjM1NDkgMi4yNDQ0IDguODU2NjYgMS41ODE1IDkuOTg3NiAxLjA5NTM5QzExLjA1OTcgMS41ODM0MSAxMi42MDk0IDIuMjQ0NCAxNC4yMTggMi44NDMzOUMxNS43NTAzIDMuNDEzOTQgMTcuMzk5NSAzLjk1MjU4IDE4Ljc1MzkgNC4yMTM4NUMxOS4xMzY0IDYuMDcxNzcgMTkuMTcwOSA4Ljc3NzIyIDE4LjEzOSAxMS40NDA5QzE3LjAzMDMgMTQuMzAzMiAxNC42NjY4IDE3LjE4NDQgOS45OTk5OSAxOC45MzU0QzUuMzMzMTkgMTcuMTg0NCAyLjk2OTY4IDE0LjMwMzIgMS44NjA5NCAxMS40NDA5WiIvPgogICAgPHBhdGggY2xhc3M9ImpwLWljb24yIiBzdHJva2U9IiMzMzMzMzMiIHN0cm9rZS13aWR0aD0iMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOS4zMTU5MiA5LjMyMDMxKSIgZD0iTTcuMzY4NDIgMEwwIDcuMzY0NzkiLz4KICAgIDxwYXRoIGNsYXNzPSJqcC1pY29uMiIgc3Ryb2tlPSIjMzMzMzMzIiBzdHJva2Utd2lkdGg9IjIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDkuMzE1OTIgMTYuNjgzNikgc2NhbGUoMSAtMSkiIGQ9Ik03LjM2ODQyIDBMMCA3LjM2NDc5Ii8+Cjwvc3ZnPgo=);
  --jp-icon-notebook: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8ZyBjbGFzcz0ianAtbm90ZWJvb2staWNvbi1jb2xvciBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiNFRjZDMDAiPgogICAgPHBhdGggZD0iTTE4LjcgMy4zdjE1LjRIMy4zVjMuM2gxNS40bTEuNS0xLjVIMS44djE4LjNoMTguM2wuMS0xOC4zeiIvPgogICAgPHBhdGggZD0iTTE2LjUgMTYuNWwtNS40LTQuMy01LjYgNC4zdi0xMWgxMXoiLz4KICA8L2c+Cjwvc3ZnPgo=);
  --jp-icon-numbering: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMjIiIHZpZXdCb3g9IjAgMCAyOCAyOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CgkJPHBhdGggZD0iTTQgMTlINlYxOS41SDVWMjAuNUg2VjIxSDRWMjJIN1YxOEg0VjE5Wk01IDEwSDZWNkg0VjdINVYxMFpNNCAxM0g1LjhMNCAxNS4xVjE2SDdWMTVINS4yTDcgMTIuOVYxMkg0VjEzWk05IDdWOUgyM1Y3SDlaTTkgMjFIMjNWMTlIOVYyMVpNOSAxNUgyM1YxM0g5VjE1WiIvPgoJPC9nPgo8L3N2Zz4K);
  --jp-icon-offline-bolt: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE2Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTEyIDIuMDJjLTUuNTEgMC05Ljk4IDQuNDctOS45OCA5Ljk4czQuNDcgOS45OCA5Ljk4IDkuOTggOS45OC00LjQ3IDkuOTgtOS45OFMxNy41MSAyLjAyIDEyIDIuMDJ6TTExLjQ4IDIwdi02LjI2SDhMMTMgNHY2LjI2aDMuMzVMMTEuNDggMjB6Ii8+CiAgPC9nPgo8L3N2Zz4K);
  --jp-icon-palette: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTE4IDEzVjIwSDRWNkg5LjAyQzkuMDcgNS4yOSA5LjI0IDQuNjIgOS41IDRINEMyLjkgNCAyIDQuOSAyIDZWMjBDMiAyMS4xIDIuOSAyMiA0IDIySDE4QzE5LjEgMjIgMjAgMjEuMSAyMCAyMFYxNUwxOCAxM1pNMTkuMyA4Ljg5QzE5Ljc0IDguMTkgMjAgNy4zOCAyMCA2LjVDMjAgNC4wMSAxNy45OSAyIDE1LjUgMkMxMy4wMSAyIDExIDQuMDEgMTEgNi41QzExIDguOTkgMTMuMDEgMTEgMTUuNDkgMTFDMTYuMzcgMTEgMTcuMTkgMTAuNzQgMTcuODggMTAuM0wyMSAxMy40MkwyMi40MiAxMkwxOS4zIDguODlaTTE1LjUgOUMxNC4xMiA5IDEzIDcuODggMTMgNi41QzEzIDUuMTIgMTQuMTIgNCAxNS41IDRDMTYuODggNCAxOCA1LjEyIDE4IDYuNUMxOCA3Ljg4IDE2Ljg4IDkgMTUuNSA5WiIvPgogICAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00IDZIOS4wMTg5NEM5LjAwNjM5IDYuMTY1MDIgOSA2LjMzMTc2IDkgNi41QzkgOC44MTU3NyAxMC4yMTEgMTAuODQ4NyAxMi4wMzQzIDEySDlWMTRIMTZWMTIuOTgxMUMxNi41NzAzIDEyLjkzNzcgMTcuMTIgMTIuODIwNyAxNy42Mzk2IDEyLjYzOTZMMTggMTNWMjBINFY2Wk04IDhINlYxMEg4VjhaTTYgMTJIOFYxNEg2VjEyWk04IDE2SDZWMThIOFYxNlpNOSAxNkgxNlYxOEg5VjE2WiIvPgogIDwvZz4KPC9zdmc+Cg==);
  --jp-icon-paste: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTE5IDJoLTQuMThDMTQuNC44NCAxMy4zIDAgMTIgMGMtMS4zIDAtMi40Ljg0LTIuODIgMkg1Yy0xLjEgMC0yIC45LTIgMnYxNmMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjRjMC0xLjEtLjktMi0yLTJ6bS03IDBjLjU1IDAgMSAuNDUgMSAxcy0uNDUgMS0xIDEtMS0uNDUtMS0xIC40NS0xIDEtMXptNyAxOEg1VjRoMnYzaDEwVjRoMnYxNnoiLz4KICAgIDwvZz4KPC9zdmc+Cg==);
  --jp-icon-pdf: url(data:image/svg+xml;base64,PHN2ZwogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMiAyMiIgd2lkdGg9IjE2Ij4KICAgIDxwYXRoIHRyYW5zZm9ybT0icm90YXRlKDQ1KSIgY2xhc3M9ImpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iI0ZGMkEyQSIKICAgICAgIGQ9Im0gMjIuMzQ0MzY5LC0zLjAxNjM2NDIgaCA1LjYzODYwNCB2IDEuNTc5MjQzMyBoIC0zLjU0OTIyNyB2IDEuNTA4NjkyOTkgaCAzLjMzNzU3NiBWIDEuNjUwODE1NCBoIC0zLjMzNzU3NiB2IDMuNDM1MjYxMyBoIC0yLjA4OTM3NyB6IG0gLTcuMTM2NDQ0LDEuNTc5MjQzMyB2IDQuOTQzOTU0MyBoIDAuNzQ4OTIgcSAxLjI4MDc2MSwwIDEuOTUzNzAzLC0wLjYzNDk1MzUgMC42NzgzNjksLTAuNjM0OTUzNSAwLjY3ODM2OSwtMS44NDUxNjQxIDAsLTEuMjA0NzgzNTUgLTAuNjcyOTQyLC0xLjgzNDMxMDExIC0wLjY3Mjk0MiwtMC42Mjk1MjY1OSAtMS45NTkxMywtMC42Mjk1MjY1OSB6IG0gLTIuMDg5Mzc3LC0xLjU3OTI0MzMgaCAyLjIwMzM0MyBxIDEuODQ1MTY0LDAgMi43NDYwMzksMC4yNjU5MjA3IDAuOTA2MzAxLDAuMjYwNDkzNyAxLjU1MjEwOCwwLjg5MDAyMDMgMC41Njk4MywwLjU0ODEyMjMgMC44NDY2MDUsMS4yNjQ0ODAwNiAwLjI3Njc3NCwwLjcxNjM1NzgxIDAuMjc2Nzc0LDEuNjIyNjU4OTQgMCwwLjkxNzE1NTEgLTAuMjc2Nzc0LDEuNjM4OTM5OSAtMC4yNzY3NzUsMC43MTYzNTc4IC0wLjg0NjYwNSwxLjI2NDQ4IC0wLjY1MTIzNCwwLjYyOTUyNjYgLTEuNTYyOTYyLDAuODk1NDQ3MyAtMC45MTE3MjgsMC4yNjA0OTM3IC0yLjczNTE4NSwwLjI2MDQ5MzcgaCAtMi4yMDMzNDMgeiBtIC04LjE0NTg1NjUsMCBoIDMuNDY3ODIzIHEgMS41NDY2ODE2LDAgMi4zNzE1Nzg1LDAuNjg5MjIzIDAuODMwMzI0LDAuNjgzNzk2MSAwLjgzMDMyNCwxLjk1MzcwMzE0IDAsMS4yNzUzMzM5NyAtMC44MzAzMjQsMS45NjQ1NTcwNiBRIDkuOTg3MTk2MSwyLjI3NDkxNSA4LjQ0MDUxNDUsMi4yNzQ5MTUgSCA3LjA2MjA2ODQgViA1LjA4NjA3NjcgSCA0Ljk3MjY5MTUgWiBtIDIuMDg5Mzc2OSwxLjUxNDExOTkgdiAyLjI2MzAzOTQzIGggMS4xNTU5NDEgcSAwLjYwNzgxODgsMCAwLjkzODg2MjksLTAuMjkzMDU1NDcgMC4zMzEwNDQxLC0wLjI5ODQ4MjQxIDAuMzMxMDQ0MSwtMC44NDExNzc3MiAwLC0wLjU0MjY5NTMxIC0wLjMzMTA0NDEsLTAuODM1NzUwNzQgLTAuMzMxMDQ0MSwtMC4yOTMwNTU1IC0wLjkzODg2MjksLTAuMjkzMDU1NSB6IgovPgo8L3N2Zz4K);
  --jp-icon-python: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iLTEwIC0xMCAxMzEuMTYxMzYxNjk0MzM1OTQgMTMyLjM4ODk5OTkzODk2NDg0Ij4KICA8cGF0aCBjbGFzcz0ianAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjMzA2OTk4IiBkPSJNIDU0LjkxODc4NSw5LjE5Mjc0MjFlLTQgQyA1MC4zMzUxMzIsMC4wMjIyMTcyNyA0NS45NTc4NDYsMC40MTMxMzY5NyA0Mi4xMDYyODUsMS4wOTQ2NjkzIDMwLjc2MDA2OSwzLjA5OTE3MzEgMjguNzAwMDM2LDcuMjk0NzcxNCAyOC43MDAwMzUsMTUuMDMyMTY5IHYgMTAuMjE4NzUgaCAyNi44MTI1IHYgMy40MDYyNSBoIC0yNi44MTI1IC0xMC4wNjI1IGMgLTcuNzkyNDU5LDAgLTE0LjYxNTc1ODgsNC42ODM3MTcgLTE2Ljc0OTk5OTgsMTMuNTkzNzUgLTIuNDYxODE5OTgsMTAuMjEyOTY2IC0yLjU3MTAxNTA4LDE2LjU4NjAyMyAwLDI3LjI1IDEuOTA1OTI4Myw3LjkzNzg1MiA2LjQ1NzU0MzIsMTMuNTkzNzQ4IDE0LjI0OTk5OTgsMTMuNTkzNzUgaCA5LjIxODc1IHYgLTEyLjI1IGMgMCwtOC44NDk5MDIgNy42NTcxNDQsLTE2LjY1NjI0OCAxNi43NSwtMTYuNjU2MjUgaCAyNi43ODEyNSBjIDcuNDU0OTUxLDAgMTMuNDA2MjUzLC02LjEzODE2NCAxMy40MDYyNSwtMTMuNjI1IHYgLTI1LjUzMTI1IGMgMCwtNy4yNjYzMzg2IC02LjEyOTk4LC0xMi43MjQ3NzcxIC0xMy40MDYyNSwtMTMuOTM3NDk5NyBDIDY0LjI4MTU0OCwwLjMyNzk0Mzk3IDU5LjUwMjQzOCwtMC4wMjAzNzkwMyA1NC45MTg3ODUsOS4xOTI3NDIxZS00IFogbSAtMTQuNSw4LjIxODc1MDEyNTc5IGMgMi43Njk1NDcsMCA1LjAzMTI1LDIuMjk4NjQ1NiA1LjAzMTI1LDUuMTI0OTk5NiAtMmUtNiwyLjgxNjMzNiAtMi4yNjE3MDMsNS4wOTM3NSAtNS4wMzEyNSw1LjA5Mzc1IC0yLjc3OTQ3NiwtMWUtNiAtNS4wMzEyNSwtMi4yNzc0MTUgLTUuMDMxMjUsLTUuMDkzNzUgLTEwZS03LC0yLjgyNjM1MyAyLjI1MTc3NCwtNS4xMjQ5OTk2IDUuMDMxMjUsLTUuMTI0OTk5NiB6Ii8+CiAgPHBhdGggY2xhc3M9ImpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iI2ZmZDQzYiIgZD0ibSA4NS42Mzc1MzUsMjguNjU3MTY5IHYgMTEuOTA2MjUgYyAwLDkuMjMwNzU1IC03LjgyNTg5NSwxNi45OTk5OTkgLTE2Ljc1LDE3IGggLTI2Ljc4MTI1IGMgLTcuMzM1ODMzLDAgLTEzLjQwNjI0OSw2LjI3ODQ4MyAtMTMuNDA2MjUsMTMuNjI1IHYgMjUuNTMxMjQ3IGMgMCw3LjI2NjM0NCA2LjMxODU4OCwxMS41NDAzMjQgMTMuNDA2MjUsMTMuNjI1MDA0IDguNDg3MzMxLDIuNDk1NjEgMTYuNjI2MjM3LDIuOTQ2NjMgMjYuNzgxMjUsMCA2Ljc1MDE1NSwtMS45NTQzOSAxMy40MDYyNTMsLTUuODg3NjEgMTMuNDA2MjUsLTEzLjYyNTAwNCBWIDg2LjUwMDkxOSBoIC0yNi43ODEyNSB2IC0zLjQwNjI1IGggMjYuNzgxMjUgMTMuNDA2MjU0IGMgNy43OTI0NjEsMCAxMC42OTYyNTEsLTUuNDM1NDA4IDEzLjQwNjI0MSwtMTMuNTkzNzUgMi43OTkzMywtOC4zOTg4ODYgMi42ODAyMiwtMTYuNDc1Nzc2IDAsLTI3LjI1IC0xLjkyNTc4LC03Ljc1NzQ0MSAtNS42MDM4NywtMTMuNTkzNzUgLTEzLjQwNjI0MSwtMTMuNTkzNzUgeiBtIC0xNS4wNjI1LDY0LjY1NjI1IGMgMi43Nzk0NzgsM2UtNiA1LjAzMTI1LDIuMjc3NDE3IDUuMDMxMjUsNS4wOTM3NDcgLTJlLTYsMi44MjYzNTQgLTIuMjUxNzc1LDUuMTI1MDA0IC01LjAzMTI1LDUuMTI1MDA0IC0yLjc2OTU1LDAgLTUuMDMxMjUsLTIuMjk4NjUgLTUuMDMxMjUsLTUuMTI1MDA0IDJlLTYsLTIuODE2MzMgMi4yNjE2OTcsLTUuMDkzNzQ3IDUuMDMxMjUsLTUuMDkzNzQ3IHoiLz4KPC9zdmc+Cg==);
  --jp-icon-r-kernel: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8cGF0aCBjbGFzcz0ianAtaWNvbi1jb250cmFzdDMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjMjE5NkYzIiBkPSJNNC40IDIuNWMxLjItLjEgMi45LS4zIDQuOS0uMyAyLjUgMCA0LjEuNCA1LjIgMS4zIDEgLjcgMS41IDEuOSAxLjUgMy41IDAgMi0xLjQgMy41LTIuOSA0LjEgMS4yLjQgMS43IDEuNiAyLjIgMyAuNiAxLjkgMSAzLjkgMS4zIDQuNmgtMy44Yy0uMy0uNC0uOC0xLjctMS4yLTMuN3MtMS4yLTIuNi0yLjYtMi42aC0uOXY2LjRINC40VjIuNXptMy43IDYuOWgxLjRjMS45IDAgMi45LS45IDIuOS0yLjNzLTEtMi4zLTIuOC0yLjNjLS43IDAtMS4zIDAtMS42LjJ2NC41aC4xdi0uMXoiLz4KPC9zdmc+Cg==);
  --jp-icon-react: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMTUwIDE1MCA1NDEuOSAyOTUuMyI+CiAgPGcgY2xhc3M9ImpwLWljb24tYnJhbmQyIGpwLWljb24tc2VsZWN0YWJsZSIgZmlsbD0iIzYxREFGQiI+CiAgICA8cGF0aCBkPSJNNjY2LjMgMjk2LjVjMC0zMi41LTQwLjctNjMuMy0xMDMuMS04Mi40IDE0LjQtNjMuNiA4LTExNC4yLTIwLjItMTMwLjQtNi41LTMuOC0xNC4xLTUuNi0yMi40LTUuNnYyMi4zYzQuNiAwIDguMy45IDExLjQgMi42IDEzLjYgNy44IDE5LjUgMzcuNSAxNC45IDc1LjctMS4xIDkuNC0yLjkgMTkuMy01LjEgMjkuNC0xOS42LTQuOC00MS04LjUtNjMuNS0xMC45LTEzLjUtMTguNS0yNy41LTM1LjMtNDEuNi01MCAzMi42LTMwLjMgNjMuMi00Ni45IDg0LTQ2LjlWNzhjLTI3LjUgMC02My41IDE5LjYtOTkuOSA1My42LTM2LjQtMzMuOC03Mi40LTUzLjItOTkuOS01My4ydjIyLjNjMjAuNyAwIDUxLjQgMTYuNSA4NCA0Ni42LTE0IDE0LjctMjggMzEuNC00MS4zIDQ5LjktMjIuNiAyLjQtNDQgNi4xLTYzLjYgMTEtMi4zLTEwLTQtMTkuNy01LjItMjktNC43LTM4LjIgMS4xLTY3LjkgMTQuNi03NS44IDMtMS44IDYuOS0yLjYgMTEuNS0yLjZWNzguNWMtOC40IDAtMTYgMS44LTIyLjYgNS42LTI4LjEgMTYuMi0zNC40IDY2LjctMTkuOSAxMzAuMS02Mi4yIDE5LjItMTAyLjcgNDkuOS0xMDIuNyA4Mi4zIDAgMzIuNSA0MC43IDYzLjMgMTAzLjEgODIuNC0xNC40IDYzLjYtOCAxMTQuMiAyMC4yIDEzMC40IDYuNSAzLjggMTQuMSA1LjYgMjIuNSA1LjYgMjcuNSAwIDYzLjUtMTkuNiA5OS45LTUzLjYgMzYuNCAzMy44IDcyLjQgNTMuMiA5OS45IDUzLjIgOC40IDAgMTYtMS44IDIyLjYtNS42IDI4LjEtMTYuMiAzNC40LTY2LjcgMTkuOS0xMzAuMSA2Mi0xOS4xIDEwMi41LTQ5LjkgMTAyLjUtODIuM3ptLTEzMC4yLTY2LjdjLTMuNyAxMi45LTguMyAyNi4yLTEzLjUgMzkuNS00LjEtOC04LjQtMTYtMTMuMS0yNC00LjYtOC05LjUtMTUuOC0xNC40LTIzLjQgMTQuMiAyLjEgMjcuOSA0LjcgNDEgNy45em0tNDUuOCAxMDYuNWMtNy44IDEzLjUtMTUuOCAyNi4zLTI0LjEgMzguMi0xNC45IDEuMy0zMCAyLTQ1LjIgMi0xNS4xIDAtMzAuMi0uNy00NS0xLjktOC4zLTExLjktMTYuNC0yNC42LTI0LjItMzgtNy42LTEzLjEtMTQuNS0yNi40LTIwLjgtMzkuOCA2LjItMTMuNCAxMy4yLTI2LjggMjAuNy0zOS45IDcuOC0xMy41IDE1LjgtMjYuMyAyNC4xLTM4LjIgMTQuOS0xLjMgMzAtMiA0NS4yLTIgMTUuMSAwIDMwLjIuNyA0NSAxLjkgOC4zIDExLjkgMTYuNCAyNC42IDI0LjIgMzggNy42IDEzLjEgMTQuNSAyNi40IDIwLjggMzkuOC02LjMgMTMuNC0xMy4yIDI2LjgtMjAuNyAzOS45em0zMi4zLTEzYzUuNCAxMy40IDEwIDI2LjggMTMuOCAzOS44LTEzLjEgMy4yLTI2LjkgNS45LTQxLjIgOCA0LjktNy43IDkuOC0xNS42IDE0LjQtMjMuNyA0LjYtOCA4LjktMTYuMSAxMy0yNC4xek00MjEuMiA0MzBjLTkuMy05LjYtMTguNi0yMC4zLTI3LjgtMzIgOSAuNCAxOC4yLjcgMjcuNS43IDkuNCAwIDE4LjctLjIgMjcuOC0uNy05IDExLjctMTguMyAyMi40LTI3LjUgMzJ6bS03NC40LTU4LjljLTE0LjItMi4xLTI3LjktNC43LTQxLTcuOSAzLjctMTIuOSA4LjMtMjYuMiAxMy41LTM5LjUgNC4xIDggOC40IDE2IDEzLjEgMjQgNC43IDggOS41IDE1LjggMTQuNCAyMy40ek00MjAuNyAxNjNjOS4zIDkuNiAxOC42IDIwLjMgMjcuOCAzMi05LS40LTE4LjItLjctMjcuNS0uNy05LjQgMC0xOC43LjItMjcuOC43IDktMTEuNyAxOC4zLTIyLjQgMjcuNS0zMnptLTc0IDU4LjljLTQuOSA3LjctOS44IDE1LjYtMTQuNCAyMy43LTQuNiA4LTguOSAxNi0xMyAyNC01LjQtMTMuNC0xMC0yNi44LTEzLjgtMzkuOCAxMy4xLTMuMSAyNi45LTUuOCA0MS4yLTcuOXptLTkwLjUgMTI1LjJjLTM1LjQtMTUuMS01OC4zLTM0LjktNTguMy01MC42IDAtMTUuNyAyMi45LTM1LjYgNTguMy01MC42IDguNi0zLjcgMTgtNyAyNy43LTEwLjEgNS43IDE5LjYgMTMuMiA0MCAyMi41IDYwLjktOS4yIDIwLjgtMTYuNiA0MS4xLTIyLjIgNjAuNi05LjktMy4xLTE5LjMtNi41LTI4LTEwLjJ6TTMxMCA0OTBjLTEzLjYtNy44LTE5LjUtMzcuNS0xNC45LTc1LjcgMS4xLTkuNCAyLjktMTkuMyA1LjEtMjkuNCAxOS42IDQuOCA0MSA4LjUgNjMuNSAxMC45IDEzLjUgMTguNSAyNy41IDM1LjMgNDEuNiA1MC0zMi42IDMwLjMtNjMuMiA0Ni45LTg0IDQ2LjktNC41LS4xLTguMy0xLTExLjMtMi43em0yMzcuMi03Ni4yYzQuNyAzOC4yLTEuMSA2Ny45LTE0LjYgNzUuOC0zIDEuOC02LjkgMi42LTExLjUgMi42LTIwLjcgMC01MS40LTE2LjUtODQtNDYuNiAxNC0xNC43IDI4LTMxLjQgNDEuMy00OS45IDIyLjYtMi40IDQ0LTYuMSA2My42LTExIDIuMyAxMC4xIDQuMSAxOS44IDUuMiAyOS4xem0zOC41LTY2LjdjLTguNiAzLjctMTggNy0yNy43IDEwLjEtNS43LTE5LjYtMTMuMi00MC0yMi41LTYwLjkgOS4yLTIwLjggMTYuNi00MS4xIDIyLjItNjAuNiA5LjkgMy4xIDE5LjMgNi41IDI4LjEgMTAuMiAzNS40IDE1LjEgNTguMyAzNC45IDU4LjMgNTAuNi0uMSAxNS43LTIzIDM1LjYtNTguNCA1MC42ek0zMjAuOCA3OC40eiIvPgogICAgPGNpcmNsZSBjeD0iNDIwLjkiIGN5PSIyOTYuNSIgcj0iNDUuNyIvPgogIDwvZz4KPC9zdmc+Cg==);
  --jp-icon-redo: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE2Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgICA8cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE4LjQgMTAuNkMxNi41NSA4Ljk5IDE0LjE1IDggMTEuNSA4Yy00LjY1IDAtOC41OCAzLjAzLTkuOTYgNy4yMkwzLjkgMTZjMS4wNS0zLjE5IDQuMDUtNS41IDcuNi01LjUgMS45NSAwIDMuNzMuNzIgNS4xMiAxLjg4TDEzIDE2aDlWN2wtMy42IDMuNnoiLz4KICA8L2c+Cjwvc3ZnPgo=);
  --jp-icon-refresh: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDE4IDE4Ij4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTkgMTMuNWMtMi40OSAwLTQuNS0yLjAxLTQuNS00LjVTNi41MSA0LjUgOSA0LjVjMS4yNCAwIDIuMzYuNTIgMy4xNyAxLjMzTDEwIDhoNVYzbC0xLjc2IDEuNzZDMTIuMTUgMy42OCAxMC42NiAzIDkgMyA1LjY5IDMgMy4wMSA1LjY5IDMuMDEgOVM1LjY5IDE1IDkgMTVjMi45NyAwIDUuNDMtMi4xNiA1LjktNWgtMS41MmMtLjQ2IDItMi4yNCAzLjUtNC4zOCAzLjV6Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=);
  --jp-icon-regex: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwIDIwIj4KICA8ZyBjbGFzcz0ianAtaWNvbjIiIGZpbGw9IiM0MTQxNDEiPgogICAgPHJlY3QgeD0iMiIgeT0iMiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ii8+CiAgPC9nPgoKICA8ZyBjbGFzcz0ianAtaWNvbi1hY2NlbnQyIiBmaWxsPSIjRkZGIj4KICAgIDxjaXJjbGUgY2xhc3M9InN0MiIgY3g9IjUuNSIgY3k9IjE0LjUiIHI9IjEuNSIvPgogICAgPHJlY3QgeD0iMTIiIHk9IjQiIGNsYXNzPSJzdDIiIHdpZHRoPSIxIiBoZWlnaHQ9IjgiLz4KICAgIDxyZWN0IHg9IjguNSIgeT0iNy41IiB0cmFuc2Zvcm09Im1hdHJpeCgwLjg2NiAtMC41IDAuNSAwLjg2NiAtMi4zMjU1IDcuMzIxOSkiIGNsYXNzPSJzdDIiIHdpZHRoPSI4IiBoZWlnaHQ9IjEiLz4KICAgIDxyZWN0IHg9IjEyIiB5PSI0IiB0cmFuc2Zvcm09Im1hdHJpeCgwLjUgLTAuODY2IDAuODY2IDAuNSAtMC42Nzc5IDE0LjgyNTIpIiBjbGFzcz0ic3QyIiB3aWR0aD0iMSIgaGVpZ2h0PSI4Ii8+CiAgPC9nPgo8L3N2Zz4K);
  --jp-icon-run: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTggNXYxNGwxMS03eiIvPgogICAgPC9nPgo8L3N2Zz4K);
  --jp-icon-running: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDUxMiA1MTIiPgogIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICA8cGF0aCBkPSJNMjU2IDhDMTE5IDggOCAxMTkgOCAyNTZzMTExIDI0OCAyNDggMjQ4IDI0OC0xMTEgMjQ4LTI0OFMzOTMgOCAyNTYgOHptOTYgMzI4YzAgOC44LTcuMiAxNi0xNiAxNkgxNzZjLTguOCAwLTE2LTcuMi0xNi0xNlYxNzZjMC04LjggNy4yLTE2IDE2LTE2aDE2MGM4LjggMCAxNiA3LjIgMTYgMTZ2MTYweiIvPgogIDwvZz4KPC9zdmc+Cg==);
  --jp-icon-save: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTE3IDNINWMtMS4xMSAwLTIgLjktMiAydjE0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjdsLTQtNHptLTUgMTZjLTEuNjYgMC0zLTEuMzQtMy0zczEuMzQtMyAzLTMgMyAxLjM0IDMgMy0xLjM0IDMtMyAzem0zLTEwSDVWNWgxMHY0eiIvPgogICAgPC9nPgo8L3N2Zz4K);
  --jp-icon-search: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTggMTgiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTEyLjEsMTAuOWgtMC43bC0wLjItMC4yYzAuOC0wLjksMS4zLTIuMiwxLjMtMy41YzAtMy0yLjQtNS40LTUuNC01LjRTMS44LDQuMiwxLjgsNy4xczIuNCw1LjQsNS40LDUuNCBjMS4zLDAsMi41LTAuNSwzLjUtMS4zbDAuMiwwLjJ2MC43bDQuMSw0LjFsMS4yLTEuMkwxMi4xLDEwLjl6IE03LjEsMTAuOWMtMi4xLDAtMy43LTEuNy0zLjctMy43czEuNy0zLjcsMy43LTMuN3MzLjcsMS43LDMuNywzLjcgUzkuMiwxMC45LDcuMSwxMC45eiIvPgogIDwvZz4KPC9zdmc+Cg==);
  --jp-icon-settings: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIiBkPSJNMTkuNDMgMTIuOThjLjA0LS4zMi4wNy0uNjQuMDctLjk4cy0uMDMtLjY2LS4wNy0uOThsMi4xMS0xLjY1Yy4xOS0uMTUuMjQtLjQyLjEyLS42NGwtMi0zLjQ2Yy0uMTItLjIyLS4zOS0uMy0uNjEtLjIybC0yLjQ5IDFjLS41Mi0uNC0xLjA4LS43My0xLjY5LS45OGwtLjM4LTIuNjVBLjQ4OC40ODggMCAwMDE0IDJoLTRjLS4yNSAwLS40Ni4xOC0uNDkuNDJsLS4zOCAyLjY1Yy0uNjEuMjUtMS4xNy41OS0xLjY5Ljk4bC0yLjQ5LTFjLS4yMy0uMDktLjQ5IDAtLjYxLjIybC0yIDMuNDZjLS4xMy4yMi0uMDcuNDkuMTIuNjRsMi4xMSAxLjY1Yy0uMDQuMzItLjA3LjY1LS4wNy45OHMuMDMuNjYuMDcuOThsLTIuMTEgMS42NWMtLjE5LjE1LS4yNC40Mi0uMTIuNjRsMiAzLjQ2Yy4xMi4yMi4zOS4zLjYxLjIybDIuNDktMWMuNTIuNCAxLjA4LjczIDEuNjkuOThsLjM4IDIuNjVjLjAzLjI0LjI0LjQyLjQ5LjQyaDRjLjI1IDAgLjQ2LS4xOC40OS0uNDJsLjM4LTIuNjVjLjYxLS4yNSAxLjE3LS41OSAxLjY5LS45OGwyLjQ5IDFjLjIzLjA5LjQ5IDAgLjYxLS4yMmwyLTMuNDZjLjEyLS4yMi4wNy0uNDktLjEyLS42NGwtMi4xMS0xLjY1ek0xMiAxNS41Yy0xLjkzIDAtMy41LTEuNTctMy41LTMuNXMxLjU3LTMuNSAzLjUtMy41IDMuNSAxLjU3IDMuNSAzLjUtMS41NyAzLjUtMy41IDMuNXoiLz4KPC9zdmc+Cg==);
  --jp-icon-share: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTSAxOCAyIEMgMTYuMzU0OTkgMiAxNSAzLjM1NDk5MDQgMTUgNSBDIDE1IDUuMTkwOTUyOSAxNS4wMjE3OTEgNS4zNzcxMjI0IDE1LjA1NjY0MSA1LjU1ODU5MzggTCA3LjkyMTg3NSA5LjcyMDcwMzEgQyA3LjM5ODUzOTkgOS4yNzc4NTM5IDYuNzMyMDc3MSA5IDYgOSBDIDQuMzU0OTkwNCA5IDMgMTAuMzU0OTkgMyAxMiBDIDMgMTMuNjQ1MDEgNC4zNTQ5OTA0IDE1IDYgMTUgQyA2LjczMjA3NzEgMTUgNy4zOTg1Mzk5IDE0LjcyMjE0NiA3LjkyMTg3NSAxNC4yNzkyOTcgTCAxNS4wNTY2NDEgMTguNDM5NDUzIEMgMTUuMDIxNTU1IDE4LjYyMTUxNCAxNSAxOC44MDgzODYgMTUgMTkgQyAxNSAyMC42NDUwMSAxNi4zNTQ5OSAyMiAxOCAyMiBDIDE5LjY0NTAxIDIyIDIxIDIwLjY0NTAxIDIxIDE5IEMgMjEgMTcuMzU0OTkgMTkuNjQ1MDEgMTYgMTggMTYgQyAxNy4yNjc0OCAxNiAxNi42MDE1OTMgMTYuMjc5MzI4IDE2LjA3ODEyNSAxNi43MjI2NTYgTCA4Ljk0MzM1OTQgMTIuNTU4NTk0IEMgOC45NzgyMDk1IDEyLjM3NzEyMiA5IDEyLjE5MDk1MyA5IDEyIEMgOSAxMS44MDkwNDcgOC45NzgyMDk1IDExLjYyMjg3OCA4Ljk0MzM1OTQgMTEuNDQxNDA2IEwgMTYuMDc4MTI1IDcuMjc5Mjk2OSBDIDE2LjYwMTQ2IDcuNzIyMTQ2MSAxNy4yNjc5MjMgOCAxOCA4IEMgMTkuNjQ1MDEgOCAyMSA2LjY0NTAwOTYgMjEgNSBDIDIxIDMuMzU0OTkwNCAxOS42NDUwMSAyIDE4IDIgeiBNIDE4IDQgQyAxOC41NjQxMjkgNCAxOSA0LjQzNTg3MDYgMTkgNSBDIDE5IDUuNTY0MTI5NCAxOC41NjQxMjkgNiAxOCA2IEMgMTcuNDM1ODcxIDYgMTcgNS41NjQxMjk0IDE3IDUgQyAxNyA0LjQzNTg3MDYgMTcuNDM1ODcxIDQgMTggNCB6IE0gNiAxMSBDIDYuNTY0MTI5NCAxMSA3IDExLjQzNTg3MSA3IDEyIEMgNyAxMi41NjQxMjkgNi41NjQxMjk0IDEzIDYgMTMgQyA1LjQzNTg3MDYgMTMgNSAxMi41NjQxMjkgNSAxMiBDIDUgMTEuNDM1ODcxIDUuNDM1ODcwNiAxMSA2IDExIHogTSAxOCAxOCBDIDE4LjU2NDEyOSAxOCAxOSAxOC40MzU4NzEgMTkgMTkgQyAxOSAxOS41NjQxMjkgMTguNTY0MTI5IDIwIDE4IDIwIEMgMTcuNDM1ODcxIDIwIDE3IDE5LjU2NDEyOSAxNyAxOSBDIDE3IDE4LjQzNTg3MSAxNy40MzU4NzEgMTggMTggMTggeiIvPgogIDwvZz4KPC9zdmc+Cg==);
  --jp-icon-spreadsheet: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8cGF0aCBjbGFzcz0ianAtaWNvbi1jb250cmFzdDEganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNENBRjUwIiBkPSJNMi4yIDIuMnYxNy42aDE3LjZWMi4ySDIuMnptMTUuNCA3LjdoLTUuNVY0LjRoNS41djUuNXpNOS45IDQuNHY1LjVINC40VjQuNGg1LjV6bS01LjUgNy43aDUuNXY1LjVINC40di01LjV6bTcuNyA1LjV2LTUuNWg1LjV2NS41aC01LjV6Ii8+Cjwvc3ZnPgo=);
  --jp-icon-stop: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPgogICAgICAgIDxwYXRoIGQ9Ik02IDZoMTJ2MTJINnoiLz4KICAgIDwvZz4KPC9zdmc+Cg==);
  --jp-icon-tab: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTIxIDNIM2MtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0wIDE2SDNWNWgxMHY0aDh2MTB6Ii8+CiAgPC9nPgo8L3N2Zz4K);
  --jp-icon-table-rows: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMSw4SDNWNGgxOFY4eiBNMjEsMTBIM3Y0aDE4VjEweiBNMjEsMTZIM3Y0aDE4VjE2eiIvPgogICAgPC9nPgo8L3N2Zz4K);
  --jp-icon-tag: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCA0MyAyOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCTxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CgkJPHBhdGggZD0iTTI4LjgzMzIgMTIuMzM0TDMyLjk5OTggMTYuNTAwN0wzNy4xNjY1IDEyLjMzNEgyOC44MzMyWiIvPgoJCTxwYXRoIGQ9Ik0xNi4yMDk1IDIxLjYxMDRDMTUuNjg3MyAyMi4xMjk5IDE0Ljg0NDMgMjIuMTI5OSAxNC4zMjQ4IDIxLjYxMDRMNi45ODI5IDE0LjcyNDVDNi41NzI0IDE0LjMzOTQgNi4wODMxMyAxMy42MDk4IDYuMDQ3ODYgMTMuMDQ4MkM1Ljk1MzQ3IDExLjUyODggNi4wMjAwMiA4LjYxOTQ0IDYuMDY2MjEgNy4wNzY5NUM2LjA4MjgxIDYuNTE0NzcgNi41NTU0OCA2LjA0MzQ3IDcuMTE4MDQgNi4wMzA1NUM5LjA4ODYzIDUuOTg0NzMgMTMuMjYzOCA1LjkzNTc5IDEzLjY1MTggNi4zMjQyNUwyMS43MzY5IDEzLjYzOUMyMi4yNTYgMTQuMTU4NSAyMS43ODUxIDE1LjQ3MjQgMjEuMjYyIDE1Ljk5NDZMMTYuMjA5NSAyMS42MTA0Wk05Ljc3NTg1IDguMjY1QzkuMzM1NTEgNy44MjU2NiA4LjYyMzUxIDcuODI1NjYgOC4xODI4IDguMjY1QzcuNzQzNDYgOC43MDU3MSA3Ljc0MzQ2IDkuNDE3MzMgOC4xODI4IDkuODU2NjdDOC42MjM4MiAxMC4yOTY0IDkuMzM1ODIgMTAuMjk2NCA5Ljc3NTg1IDkuODU2NjdDMTAuMjE1NiA5LjQxNzMzIDEwLjIxNTYgOC43MDUzMyA5Ljc3NTg1IDguMjY1WiIvPgoJPC9nPgo8L3N2Zz4K);
  --jp-icon-terminal: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiA+CiAgICA8cmVjdCBjbGFzcz0ianAtdGVybWluYWwtaWNvbi1iYWNrZ3JvdW5kLWNvbG9yIGpwLWljb24tc2VsZWN0YWJsZSIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyIDIpIiBmaWxsPSIjMzMzMzMzIi8+CiAgICA8cGF0aCBjbGFzcz0ianAtdGVybWluYWwtaWNvbi1jb2xvciBqcC1pY29uLXNlbGVjdGFibGUtaW52ZXJzZSIgZD0iTTUuMDU2NjQgOC43NjE3MkM1LjA1NjY0IDguNTk3NjYgNS4wMzEyNSA4LjQ1MzEyIDQuOTgwNDcgOC4zMjgxMkM0LjkzMzU5IDguMTk5MjIgNC44NTU0NyA4LjA4MjAzIDQuNzQ2MDkgNy45NzY1NkM0LjY0MDYyIDcuODcxMDkgNC41IDcuNzc1MzkgNC4zMjQyMiA3LjY4OTQ1QzQuMTUyMzQgNy41OTk2MSAzLjk0MzM2IDcuNTExNzIgMy42OTcyNyA3LjQyNTc4QzMuMzAyNzMgNy4yODUxNiAyLjk0MzM2IDcuMTM2NzIgMi42MTkxNCA2Ljk4MDQ3QzIuMjk0OTIgNi44MjQyMiAyLjAxNzU4IDYuNjQyNTggMS43ODcxMSA2LjQzNTU1QzEuNTYwNTUgNi4yMjg1MiAxLjM4NDc3IDUuOTg4MjggMS4yNTk3NyA1LjcxNDg0QzEuMTM0NzcgNS40Mzc1IDEuMDcyMjcgNS4xMDkzOCAxLjA3MjI3IDQuNzMwNDdDMS4wNzIyNyA0LjM5ODQ0IDEuMTI4OTEgNC4wOTU3IDEuMjQyMTkgMy44MjIyN0MxLjM1NTQ3IDMuNTQ0OTIgMS41MTU2MiAzLjMwNDY5IDEuNzIyNjYgMy4xMDE1NkMxLjkyOTY5IDIuODk4NDQgMi4xNzk2OSAyLjczNDM3IDIuNDcyNjYgMi42MDkzOEMyLjc2NTYyIDIuNDg0MzggMy4wOTE4IDIuNDA0MyAzLjQ1MTE3IDIuMzY5MTRWMS4xMDkzOEg0LjM4ODY3VjIuMzgwODZDNC43NDAyMyAyLjQyNzczIDUuMDU2NjQgMi41MjM0NCA1LjMzNzg5IDIuNjY3OTdDNS42MTkxNCAyLjgxMjUgNS44NTc0MiAzLjAwMTk1IDYuMDUyNzMgMy4yMzYzM0M2LjI1MTk1IDMuNDY2OCA2LjQwNDMgMy43NDAyMyA2LjUwOTc3IDQuMDU2NjRDNi42MTkxNCA0LjM2OTE0IDYuNjczODMgNC43MjA3IDYuNjczODMgNS4xMTEzM0g1LjA0NDkyQzUuMDQ0OTIgNC42Mzg2NyA0LjkzNzUgNC4yODEyNSA0LjcyMjY2IDQuMDM5MDZDNC41MDc4MSAzLjc5Mjk3IDQuMjE2OCAzLjY2OTkyIDMuODQ5NjEgMy42Njk5MkMzLjY1MDM5IDMuNjY5OTIgMy40NzY1NiAzLjY5NzI3IDMuMzI4MTIgMy43NTE5NUMzLjE4MzU5IDMuODAyNzMgMy4wNjQ0NSAzLjg3Njk1IDIuOTcwNyAzLjk3NDYxQzIuODc2OTUgNC4wNjgzNiAyLjgwNjY0IDQuMTc5NjkgMi43NTk3NyA0LjMwODU5QzIuNzE2OCA0LjQzNzUgMi42OTUzMSA0LjU3ODEyIDIuNjk1MzEgNC43MzA0N0MyLjY5NTMxIDQuODgyODEgMi43MTY4IDUuMDE5NTMgMi43NTk3NyA1LjE0MDYyQzIuODA2NjQgNS4yNTc4MSAyLjg4MjgxIDUuMzY3MTkgMi45ODgyOCA1LjQ2ODc1QzMuMDk3NjYgNS41NzAzMSAzLjI0MDIzIDUuNjY3OTcgMy40MTYwMiA1Ljc2MTcyQzMuNTkxOCA1Ljg1MTU2IDMuODEwNTUgNS45NDMzNiA0LjA3MjI3IDYuMDM3MTFDNC40NjY4IDYuMTg1NTUgNC44MjQyMiA2LjMzOTg0IDUuMTQ0NTMgNi41QzUuNDY0ODQgNi42NTYyNSA1LjczODI4IDYuODM5ODQgNS45NjQ4NCA3LjA1MDc4QzYuMTk1MzEgNy4yNTc4MSA2LjM3MTA5IDcuNSA2LjQ5MjE5IDcuNzc3MzRDNi42MTcxOSA4LjA1MDc4IDYuNjc5NjkgOC4zNzUgNi42Nzk2OSA4Ljc1QzYuNjc5NjkgOS4wOTM3NSA2LjYyMzA1IDkuNDA0MyA2LjUwOTc3IDkuNjgxNjRDNi4zOTY0OCA5Ljk1NTA4IDYuMjM0MzggMTAuMTkxNCA2LjAyMzQ0IDEwLjM5MDZDNS44MTI1IDEwLjU4OTggNS41NTg1OSAxMC43NSA1LjI2MTcyIDEwLjg3MTFDNC45NjQ4NCAxMC45ODgzIDQuNjMyODEgMTEuMDY0NSA0LjI2NTYyIDExLjA5OTZWMTIuMjQ4SDMuMzMzOThWMTEuMDk5NkMzLjAwMTk1IDExLjA2ODQgMi42Nzk2OSAxMC45OTYxIDIuMzY3MTkgMTAuODgyOEMyLjA1NDY5IDEwLjc2NTYgMS43NzczNCAxMC41OTc3IDEuNTM1MTYgMTAuMzc4OUMxLjI5Njg4IDEwLjE2MDIgMS4xMDU0NyA5Ljg4NDc3IDAuOTYwOTM4IDkuNTUyNzNDMC44MTY0MDYgOS4yMTY4IDAuNzQ0MTQxIDguODE0NDUgMC43NDQxNDEgOC4zNDU3SDIuMzc4OTFDMi4zNzg5MSA4LjYyNjk1IDIuNDE5OTIgOC44NjMyOCAyLjUwMTk1IDkuMDU0NjlDMi41ODM5OCA5LjI0MjE5IDIuNjg5NDUgOS4zOTI1OCAyLjgxODM2IDkuNTA1ODZDMi45NTExNyA5LjYxNTIzIDMuMTAxNTYgOS42OTMzNiAzLjI2OTUzIDkuNzQwMjNDMy40Mzc1IDkuNzg3MTEgMy42MDkzOCA5LjgxMDU1IDMuNzg1MTYgOS44MTA1NUM0LjIwMzEyIDkuODEwNTUgNC41MTk1MyA5LjcxMjg5IDQuNzM0MzggOS41MTc1OEM0Ljk0OTIyIDkuMzIyMjcgNS4wNTY2NCA5LjA3MDMxIDUuMDU2NjQgOC43NjE3MlpNMTMuNDE4IDEyLjI3MTVIOC4wNzQyMlYxMUgxMy40MThWMTIuMjcxNVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMuOTUyNjQgNikiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo=);
  --jp-icon-text-editor: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBjbGFzcz0ianAtdGV4dC1lZGl0b3ItaWNvbi1jb2xvciBqcC1pY29uLXNlbGVjdGFibGUiIGZpbGw9IiM2MTYxNjEiIGQ9Ik0xNSAxNUgzdjJoMTJ2LTJ6bTAtOEgzdjJoMTJWN3pNMyAxM2gxOHYtMkgzdjJ6bTAgOGgxOHYtMkgzdjJ6TTMgM3YyaDE4VjNIM3oiLz4KPC9zdmc+Cg==);
  --jp-icon-toc: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8ZyBjbGFzcz0ianAtaWNvbjMganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjNjE2MTYxIj4KICAgIDxwYXRoIGQ9Ik03LDVIMjFWN0g3VjVNNywxM1YxMUgyMVYxM0g3TTQsNC41QTEuNSwxLjUgMCAwLDEgNS41LDZBMS41LDEuNSAwIDAsMSA0LDcuNUExLjUsMS41IDAgMCwxIDIuNSw2QTEuNSwxLjUgMCAwLDEgNCw0LjVNNCwxMC41QTEuNSwxLjUgMCAwLDEgNS41LDEyQTEuNSwxLjUgMCAwLDEgNCwxMy41QTEuNSwxLjUgMCAwLDEgMi41LDEyQTEuNSwxLjUgMCAwLDEgNCwxMC41TTcsMTlWMTdIMjFWMTlIN000LDE2LjVBMS41LDEuNSAwIDAsMSA1LjUsMThBMS41LDEuNSAwIDAsMSA0LDE5LjVBMS41LDEuNSAwIDAsMSAyLjUsMThBMS41LDEuNSAwIDAsMSA0LDE2LjVaIiAvPgogIDwvZz4KPC9zdmc+Cg==);
  --jp-icon-tree-view: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsYXNzPSJqcC1pY29uMyIgZmlsbD0iIzYxNjE2MSI+CiAgICAgICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPgogICAgICAgIDxwYXRoIGQ9Ik0yMiAxMVYzaC03djNIOVYzSDJ2OGg3VjhoMnYxMGg0djNoN3YtOGgtN3YzaC0yVjhoMnYzeiIvPgogICAgPC9nPgo8L3N2Zz4K);
  --jp-icon-trusted: url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDI0IDI1Ij4KICAgIDxwYXRoIGNsYXNzPSJqcC1pY29uMiIgc3Ryb2tlPSIjMzMzMzMzIiBzdHJva2Utd2lkdGg9IjIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIgMykiIGQ9Ik0xLjg2MDk0IDExLjQ0MDlDMC44MjY0NDggOC43NzAyNyAwLjg2Mzc3OSA2LjA1NzY0IDEuMjQ5MDcgNC4xOTkzMkMyLjQ4MjA2IDMuOTMzNDcgNC4wODA2OCAzLjQwMzQ3IDUuNjAxMDIgMi44NDQ5QzcuMjM1NDkgMi4yNDQ0IDguODU2NjYgMS41ODE1IDkuOTg3NiAxLjA5NTM5QzExLjA1OTcgMS41ODM0MSAxMi42MDk0IDIuMjQ0NCAxNC4yMTggMi44NDMzOUMxNS43NTAzIDMuNDEzOTQgMTcuMzk5NSAzLjk1MjU4IDE4Ljc1MzkgNC4yMTM4NUMxOS4xMzY0IDYuMDcxNzcgMTkuMTcwOSA4Ljc3NzIyIDE4LjEzOSAxMS40NDA5QzE3LjAzMDMgMTQuMzAzMiAxNC42NjY4IDE3LjE4NDQgOS45OTk5OSAxOC45MzU0QzUuMzMzMiAxNy4xODQ0IDIuOTY5NjggMTQuMzAzMiAxLjg2MDk0IDExLjQ0MDlaIi8+CiAgICA8cGF0aCBjbGFzcz0ianAtaWNvbjIiIGZpbGw9IiMzMzMzMzMiIHN0cm9rZT0iIzMzMzMzMyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOCA5Ljg2NzE5KSIgZD0iTTIuODYwMTUgNC44NjUzNUwwLjcyNjU0OSAyLjk5OTU5TDAgMy42MzA0NUwyLjg2MDE1IDYuMTMxNTdMOCAwLjYzMDg3Mkw3LjI3ODU3IDBMMi44NjAxNSA0Ljg2NTM1WiIvPgo8L3N2Zz4K);
  --jp-icon-undo: url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTEyLjUgOGMtMi42NSAwLTUuMDUuOTktNi45IDIuNkwyIDd2OWg5bC0zLjYyLTMuNjJjMS4zOS0xLjE2IDMuMTYtMS44OCA1LjEyLTEuODggMy41NCAwIDYuNTUgMi4zMSA3LjYgNS41bDIuMzctLjc4QzIxLjA4IDExLjAzIDE3LjE1IDggMTIuNSA4eiIvPgogIDwvZz4KPC9zdmc+Cg==);
  --jp-icon-user: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyBjbGFzcz0ianAtaWNvbjMiIGZpbGw9IiM2MTYxNjEiPgogICAgPHBhdGggZD0iTTE2IDdhNCA0IDAgMTEtOCAwIDQgNCAwIDAxOCAwek0xMiAxNGE3IDcgMCAwMC03IDdoMTRhNyA3IDAgMDAtNy03eiIvPgogIDwvZz4KPC9zdmc+Cg==);
  --jp-icon-users: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDM2IDI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogPGcgY2xhc3M9ImpwLWljb24zIiB0cmFuc2Zvcm09Im1hdHJpeCgxLjczMjcgMCAwIDEuNzMyNyAtMy42MjgyIC4wOTk1NzcpIiBmaWxsPSIjNjE2MTYxIj4KICA8cGF0aCB0cmFuc2Zvcm09Im1hdHJpeCgxLjUsMCwwLDEuNSwwLC02KSIgZD0ibTEyLjE4NiA3LjUwOThjLTEuMDUzNSAwLTEuOTc1NyAwLjU2NjUtMi40Nzg1IDEuNDEwMiAwLjc1MDYxIDAuMzEyNzcgMS4zOTc0IDAuODI2NDggMS44NzMgMS40NzI3aDMuNDg2M2MwLTEuNTkyLTEuMjg4OS0yLjg4MjgtMi44ODA5LTIuODgyOHoiLz4KICA8cGF0aCBkPSJtMjAuNDY1IDIuMzg5NWEyLjE4ODUgMi4xODg1IDAgMCAxLTIuMTg4NCAyLjE4ODUgMi4xODg1IDIuMTg4NSAwIDAgMS0yLjE4ODUtMi4xODg1IDIuMTg4NSAyLjE4ODUgMCAwIDEgMi4xODg1LTIuMTg4NSAyLjE4ODUgMi4xODg1IDAgMCAxIDIuMTg4NCAyLjE4ODV6Ii8+CiAgPHBhdGggdHJhbnNmb3JtPSJtYXRyaXgoMS41LDAsMCwxLjUsMCwtNikiIGQ9Im0zLjU4OTggOC40MjE5Yy0xLjExMjYgMC0yLjAxMzcgMC45MDExMS0yLjAxMzcgMi4wMTM3aDIuODE0NWMwLjI2Nzk3LTAuMzczMDkgMC41OTA3LTAuNzA0MzUgMC45NTg5OC0wLjk3ODUyLTAuMzQ0MzMtMC42MTY4OC0xLjAwMzEtMS4wMzUyLTEuNzU5OC0xLjAzNTJ6Ii8+CiAgPHBhdGggZD0ibTYuOTE1NCA0LjYyM2ExLjUyOTQgMS41Mjk0IDAgMCAxLTEuNTI5NCAxLjUyOTQgMS41Mjk0IDEuNTI5NCAwIDAgMS0xLjUyOTQtMS41Mjk0IDEuNTI5NCAxLjUyOTQgMCAwIDEgMS41Mjk0LTEuNTI5NCAxLjUyOTQgMS41Mjk0IDAgMCAxIDEuNTI5NCAxLjUyOTR6Ii8+CiAgPHBhdGggZD0ibTYuMTM1IDEzLjUzNWMwLTMuMjM5MiAyLjYyNTktNS44NjUgNS44NjUtNS44NjUgMy4yMzkyIDAgNS44NjUgMi42MjU5IDUuODY1IDUuODY1eiIvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMy43Njg1IiByPSIyLjk2ODUiLz4KIDwvZz4KPC9zdmc+Cg==);
  --jp-icon-vega: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8ZyBjbGFzcz0ianAtaWNvbjEganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjMjEyMTIxIj4KICAgIDxwYXRoIGQ9Ik0xMC42IDUuNGwyLjItMy4ySDIuMnY3LjNsNC02LjZ6Ii8+CiAgICA8cGF0aCBkPSJNMTUuOCAyLjJsLTQuNCA2LjZMNyA2LjNsLTQuOCA4djUuNWgxNy42VjIuMmgtNHptLTcgMTUuNEg1LjV2LTQuNGgzLjN2NC40em00LjQgMEg5LjhWOS44aDMuNHY3Ljh6bTQuNCAwaC0zLjRWNi41aDMuNHYxMS4xeiIvPgogIDwvZz4KPC9zdmc+Cg==);
  --jp-icon-word: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIwIDIwIj4KIDxnIGNsYXNzPSJqcC1pY29uMiIgZmlsbD0iIzQxNDE0MSI+CiAgPHJlY3QgeD0iMiIgeT0iMiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2Ii8+CiA8L2c+CiA8ZyBjbGFzcz0ianAtaWNvbi1hY2NlbnQyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSguNDMgLjA0MDEpIiBmaWxsPSIjZmZmIj4KICA8cGF0aCBkPSJtNC4xNCA4Ljc2cTAuMDY4Mi0xLjg5IDIuNDItMS44OSAxLjE2IDAgMS42OCAwLjQyIDAuNTY3IDAuNDEgMC41NjcgMS4xNnYzLjQ3cTAgMC40NjIgMC41MTQgMC40NjIgMC4xMDMgMCAwLjItMC4wMjMxdjAuNzE0cS0wLjM5OSAwLjEwMy0wLjY1MSAwLjEwMy0wLjQ1MiAwLTAuNjkzLTAuMjItMC4yMzEtMC4yLTAuMjg0LTAuNjYyLTAuOTU2IDAuODcyLTIgMC44NzItMC45MDMgMC0xLjQ3LTAuNDcyLTAuNTI1LTAuNDcyLTAuNTI1LTEuMjYgMC0wLjI2MiAwLjA0NTItMC40NzIgMC4wNTY3LTAuMjIgMC4xMTYtMC4zNzggMC4wNjgyLTAuMTY4IDAuMjMxLTAuMzA0IDAuMTU4LTAuMTQ3IDAuMjYyLTAuMjQyIDAuMTE2LTAuMDkxNCAwLjM2OC0wLjE2OCAwLjI2Mi0wLjA5MTQgMC4zOTktMC4xMjYgMC4xMzYtMC4wNDUyIDAuNDcyLTAuMTAzIDAuMzM2LTAuMDU3OCAwLjUwNC0wLjA3OTggMC4xNTgtMC4wMjMxIDAuNTY3LTAuMDc5OCAwLjU1Ni0wLjA2ODIgMC43NzctMC4yMjEgMC4yMi0wLjE1MiAwLjIyLTAuNDQxdi0wLjI1MnEwLTAuNDMtMC4zNTctMC42NjItMC4zMzYtMC4yMzEtMC45NzYtMC4yMzEtMC42NjIgMC0wLjk5OCAwLjI2Mi0wLjMzNiAwLjI1Mi0wLjM5OSAwLjc5OHptMS44OSAzLjY4cTAuNzg4IDAgMS4yNi0wLjQxIDAuNTA0LTAuNDIgMC41MDQtMC45MDN2LTEuMDVxLTAuMjg0IDAuMTM2LTAuODYxIDAuMjMxLTAuNTY3IDAuMDkxNC0wLjk4NyAwLjE1OC0wLjQyIDAuMDY4Mi0wLjc2NiAwLjMyNi0wLjMzNiAwLjI1Mi0wLjMzNiAwLjcwNHQwLjMwNCAwLjcwNCAwLjg2MSAwLjI1MnoiIHN0cm9rZS13aWR0aD0iMS4wNSIvPgogIDxwYXRoIGQ9Im0xMCA0LjU2aDAuOTQ1djMuMTVxMC42NTEtMC45NzYgMS44OS0wLjk3NiAxLjE2IDAgMS44OSAwLjg0IDAuNjgyIDAuODQgMC42ODIgMi4zMSAwIDEuNDctMC43MDQgMi40Mi0wLjcwNCAwLjg4Mi0xLjg5IDAuODgyLTEuMjYgMC0xLjg5LTEuMDJ2MC43NjZoLTAuODV6bTIuNjIgMy4wNHEtMC43NDYgMC0xLjE2IDAuNjQtMC40NTIgMC42My0wLjQ1MiAxLjY4IDAgMS4wNSAwLjQ1MiAxLjY4dDEuMTYgMC42M3EwLjc3NyAwIDEuMjYtMC42MyAwLjQ5NC0wLjY0IDAuNDk0LTEuNjggMC0xLjA1LTAuNDcyLTEuNjgtMC40NjItMC42NC0xLjI2LTAuNjR6IiBzdHJva2Utd2lkdGg9IjEuMDUiLz4KICA8cGF0aCBkPSJtMi43MyAxNS44IDEzLjYgMC4wMDgxYzAuMDA2OSAwIDAtMi42IDAtMi42IDAtMC4wMDc4LTEuMTUgMC0xLjE1IDAtMC4wMDY5IDAtMC4wMDgzIDEuNS0wLjAwODMgMS41LTJlLTMgLTAuMDAxNC0xMS4zLTAuMDAxNC0xMS4zLTAuMDAxNGwtMC4wMDU5Mi0xLjVjMC0wLjAwNzgtMS4xNyAwLjAwMTMtMS4xNyAwLjAwMTN6IiBzdHJva2Utd2lkdGg9Ii45NzUiLz4KIDwvZz4KPC9zdmc+Cg==);
  --jp-icon-yaml: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgdmlld0JveD0iMCAwIDIyIDIyIj4KICA8ZyBjbGFzcz0ianAtaWNvbi1jb250cmFzdDIganAtaWNvbi1zZWxlY3RhYmxlIiBmaWxsPSIjRDgxQjYwIj4KICAgIDxwYXRoIGQ9Ik03LjIgMTguNnYtNS40TDMgNS42aDMuM2wxLjQgMy4xYy4zLjkuNiAxLjYgMSAyLjUuMy0uOC42LTEuNiAxLTIuNWwxLjQtMy4xaDMuNGwtNC40IDcuNnY1LjVsLTIuOS0uMXoiLz4KICAgIDxjaXJjbGUgY2xhc3M9InN0MCIgY3g9IjE3LjYiIGN5PSIxNi41IiByPSIyLjEiLz4KICAgIDxjaXJjbGUgY2xhc3M9InN0MCIgY3g9IjE3LjYiIGN5PSIxMSIgcj0iMi4xIi8+CiAgPC9nPgo8L3N2Zz4K);
}

/* Icon CSS class declarations */

.jp-AddAboveIcon {
  background-image: var(--jp-icon-add-above);
}

.jp-AddBelowIcon {
  background-image: var(--jp-icon-add-below);
}

.jp-AddIcon {
  background-image: var(--jp-icon-add);
}

.jp-BellIcon {
  background-image: var(--jp-icon-bell);
}

.jp-BugDotIcon {
  background-image: var(--jp-icon-bug-dot);
}

.jp-BugIcon {
  background-image: var(--jp-icon-bug);
}

.jp-BuildIcon {
  background-image: var(--jp-icon-build);
}

.jp-CaretDownEmptyIcon {
  background-image: var(--jp-icon-caret-down-empty);
}

.jp-CaretDownEmptyThinIcon {
  background-image: var(--jp-icon-caret-down-empty-thin);
}

.jp-CaretDownIcon {
  background-image: var(--jp-icon-caret-down);
}

.jp-CaretLeftIcon {
  background-image: var(--jp-icon-caret-left);
}

.jp-CaretRightIcon {
  background-image: var(--jp-icon-caret-right);
}

.jp-CaretUpEmptyThinIcon {
  background-image: var(--jp-icon-caret-up-empty-thin);
}

.jp-CaretUpIcon {
  background-image: var(--jp-icon-caret-up);
}

.jp-CaseSensitiveIcon {
  background-image: var(--jp-icon-case-sensitive);
}

.jp-CheckIcon {
  background-image: var(--jp-icon-check);
}

.jp-CircleEmptyIcon {
  background-image: var(--jp-icon-circle-empty);
}

.jp-CircleIcon {
  background-image: var(--jp-icon-circle);
}

.jp-ClearIcon {
  background-image: var(--jp-icon-clear);
}

.jp-CloseIcon {
  background-image: var(--jp-icon-close);
}

.jp-CodeCheckIcon {
  background-image: var(--jp-icon-code-check);
}

.jp-CodeIcon {
  background-image: var(--jp-icon-code);
}

.jp-CollapseAllIcon {
  background-image: var(--jp-icon-collapse-all);
}

.jp-ConsoleIcon {
  background-image: var(--jp-icon-console);
}

.jp-CopyIcon {
  background-image: var(--jp-icon-copy);
}

.jp-CopyrightIcon {
  background-image: var(--jp-icon-copyright);
}

.jp-CutIcon {
  background-image: var(--jp-icon-cut);
}

.jp-DeleteIcon {
  background-image: var(--jp-icon-delete);
}

.jp-DownloadIcon {
  background-image: var(--jp-icon-download);
}

.jp-DuplicateIcon {
  background-image: var(--jp-icon-duplicate);
}

.jp-EditIcon {
  background-image: var(--jp-icon-edit);
}

.jp-EllipsesIcon {
  background-image: var(--jp-icon-ellipses);
}

.jp-ErrorIcon {
  background-image: var(--jp-icon-error);
}

.jp-ExpandAllIcon {
  background-image: var(--jp-icon-expand-all);
}

.jp-ExtensionIcon {
  background-image: var(--jp-icon-extension);
}

.jp-FastForwardIcon {
  background-image: var(--jp-icon-fast-forward);
}

.jp-FileIcon {
  background-image: var(--jp-icon-file);
}

.jp-FileUploadIcon {
  background-image: var(--jp-icon-file-upload);
}

.jp-FilterDotIcon {
  background-image: var(--jp-icon-filter-dot);
}

.jp-FilterIcon {
  background-image: var(--jp-icon-filter);
}

.jp-FilterListIcon {
  background-image: var(--jp-icon-filter-list);
}

.jp-FolderFavoriteIcon {
  background-image: var(--jp-icon-folder-favorite);
}

.jp-FolderIcon {
  background-image: var(--jp-icon-folder);
}

.jp-HomeIcon {
  background-image: var(--jp-icon-home);
}

.jp-Html5Icon {
  background-image: var(--jp-icon-html5);
}

.jp-ImageIcon {
  background-image: var(--jp-icon-image);
}

.jp-InfoIcon {
  background-image: var(--jp-icon-info);
}

.jp-InspectorIcon {
  background-image: var(--jp-icon-inspector);
}

.jp-JsonIcon {
  background-image: var(--jp-icon-json);
}

.jp-JuliaIcon {
  background-image: var(--jp-icon-julia);
}

.jp-JupyterFaviconIcon {
  background-image: var(--jp-icon-jupyter-favicon);
}

.jp-JupyterIcon {
  background-image: var(--jp-icon-jupyter);
}

.jp-JupyterlabWordmarkIcon {
  background-image: var(--jp-icon-jupyterlab-wordmark);
}

.jp-KernelIcon {
  background-image: var(--jp-icon-kernel);
}

.jp-KeyboardIcon {
  background-image: var(--jp-icon-keyboard);
}

.jp-LaunchIcon {
  background-image: var(--jp-icon-launch);
}

.jp-LauncherIcon {
  background-image: var(--jp-icon-launcher);
}

.jp-LineFormIcon {
  background-image: var(--jp-icon-line-form);
}

.jp-LinkIcon {
  background-image: var(--jp-icon-link);
}

.jp-ListIcon {
  background-image: var(--jp-icon-list);
}

.jp-MarkdownIcon {
  background-image: var(--jp-icon-markdown);
}

.jp-MoveDownIcon {
  background-image: var(--jp-icon-move-down);
}

.jp-MoveUpIcon {
  background-image: var(--jp-icon-move-up);
}

.jp-NewFolderIcon {
  background-image: var(--jp-icon-new-folder);
}

.jp-NotTrustedIcon {
  background-image: var(--jp-icon-not-trusted);
}

.jp-NotebookIcon {
  background-image: var(--jp-icon-notebook);
}

.jp-NumberingIcon {
  background-image: var(--jp-icon-numbering);
}

.jp-OfflineBoltIcon {
  background-image: var(--jp-icon-offline-bolt);
}

.jp-PaletteIcon {
  background-image: var(--jp-icon-palette);
}

.jp-PasteIcon {
  background-image: var(--jp-icon-paste);
}

.jp-PdfIcon {
  background-image: var(--jp-icon-pdf);
}

.jp-PythonIcon {
  background-image: var(--jp-icon-python);
}

.jp-RKernelIcon {
  background-image: var(--jp-icon-r-kernel);
}

.jp-ReactIcon {
  background-image: var(--jp-icon-react);
}

.jp-RedoIcon {
  background-image: var(--jp-icon-redo);
}

.jp-RefreshIcon {
  background-image: var(--jp-icon-refresh);
}

.jp-RegexIcon {
  background-image: var(--jp-icon-regex);
}

.jp-RunIcon {
  background-image: var(--jp-icon-run);
}

.jp-RunningIcon {
  background-image: var(--jp-icon-running);
}

.jp-SaveIcon {
  background-image: var(--jp-icon-save);
}

.jp-SearchIcon {
  background-image: var(--jp-icon-search);
}

.jp-SettingsIcon {
  background-image: var(--jp-icon-settings);
}

.jp-ShareIcon {
  background-image: var(--jp-icon-share);
}

.jp-SpreadsheetIcon {
  background-image: var(--jp-icon-spreadsheet);
}

.jp-StopIcon {
  background-image: var(--jp-icon-stop);
}

.jp-TabIcon {
  background-image: var(--jp-icon-tab);
}

.jp-TableRowsIcon {
  background-image: var(--jp-icon-table-rows);
}

.jp-TagIcon {
  background-image: var(--jp-icon-tag);
}

.jp-TerminalIcon {
  background-image: var(--jp-icon-terminal);
}

.jp-TextEditorIcon {
  background-image: var(--jp-icon-text-editor);
}

.jp-TocIcon {
  background-image: var(--jp-icon-toc);
}

.jp-TreeViewIcon {
  background-image: var(--jp-icon-tree-view);
}

.jp-TrustedIcon {
  background-image: var(--jp-icon-trusted);
}

.jp-UndoIcon {
  background-image: var(--jp-icon-undo);
}

.jp-UserIcon {
  background-image: var(--jp-icon-user);
}

.jp-UsersIcon {
  background-image: var(--jp-icon-users);
}

.jp-VegaIcon {
  background-image: var(--jp-icon-vega);
}

.jp-WordIcon {
  background-image: var(--jp-icon-word);
}

.jp-YamlIcon {
  background-image: var(--jp-icon-yaml);
}

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

/**
 * (DEPRECATED) Support for consuming icons as CSS background images
 */

.jp-Icon,
.jp-MaterialIcon {
  background-position: center;
  background-repeat: no-repeat;
  background-size: 16px;
  min-width: 16px;
  min-height: 16px;
}

.jp-Icon-cover {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

/**
 * (DEPRECATED) Support for specific CSS icon sizes
 */

.jp-Icon-16 {
  background-size: 16px;
  min-width: 16px;
  min-height: 16px;
}

.jp-Icon-18 {
  background-size: 18px;
  min-width: 18px;
  min-height: 18px;
}

.jp-Icon-20 {
  background-size: 20px;
  min-width: 20px;
  min-height: 20px;
}

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

.lm-TabBar .lm-TabBar-addButton {
  align-items: center;
  display: flex;
  padding: 4px;
  padding-bottom: 5px;
  margin-right: 1px;
  background-color: var(--jp-layout-color2);
}

.lm-TabBar .lm-TabBar-addButton:hover {
  background-color: var(--jp-layout-color1);
}

.lm-DockPanel-tabBar .lm-TabBar-tab {
  width: var(--jp-private-horizontal-tab-width);
}

.lm-DockPanel-tabBar .lm-TabBar-content {
  flex: unset;
}

.lm-DockPanel-tabBar[data-orientation=&#39;horizontal&#39;] {
  flex: 1 1 auto;
}

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

/**
 * Support for icons as inline SVG HTMLElements
 */

/* recolor the primary elements of an icon */
.jp-icon0[fill] {
  fill: var(--jp-inverse-layout-color0);
}

.jp-icon1[fill] {
  fill: var(--jp-inverse-layout-color1);
}

.jp-icon2[fill] {
  fill: var(--jp-inverse-layout-color2);
}

.jp-icon3[fill] {
  fill: var(--jp-inverse-layout-color3);
}

.jp-icon4[fill] {
  fill: var(--jp-inverse-layout-color4);
}

.jp-icon0[stroke] {
  stroke: var(--jp-inverse-layout-color0);
}

.jp-icon1[stroke] {
  stroke: var(--jp-inverse-layout-color1);
}

.jp-icon2[stroke] {
  stroke: var(--jp-inverse-layout-color2);
}

.jp-icon3[stroke] {
  stroke: var(--jp-inverse-layout-color3);
}

.jp-icon4[stroke] {
  stroke: var(--jp-inverse-layout-color4);
}

/* recolor the accent elements of an icon */
.jp-icon-accent0[fill] {
  fill: var(--jp-layout-color0);
}

.jp-icon-accent1[fill] {
  fill: var(--jp-layout-color1);
}

.jp-icon-accent2[fill] {
  fill: var(--jp-layout-color2);
}

.jp-icon-accent3[fill] {
  fill: var(--jp-layout-color3);
}

.jp-icon-accent4[fill] {
  fill: var(--jp-layout-color4);
}

.jp-icon-accent0[stroke] {
  stroke: var(--jp-layout-color0);
}

.jp-icon-accent1[stroke] {
  stroke: var(--jp-layout-color1);
}

.jp-icon-accent2[stroke] {
  stroke: var(--jp-layout-color2);
}

.jp-icon-accent3[stroke] {
  stroke: var(--jp-layout-color3);
}

.jp-icon-accent4[stroke] {
  stroke: var(--jp-layout-color4);
}

/* set the color of an icon to transparent */
.jp-icon-none[fill] {
  fill: none;
}

.jp-icon-none[stroke] {
  stroke: none;
}

/* brand icon colors. Same for light and dark */
.jp-icon-brand0[fill] {
  fill: var(--jp-brand-color0);
}

.jp-icon-brand1[fill] {
  fill: var(--jp-brand-color1);
}

.jp-icon-brand2[fill] {
  fill: var(--jp-brand-color2);
}

.jp-icon-brand3[fill] {
  fill: var(--jp-brand-color3);
}

.jp-icon-brand4[fill] {
  fill: var(--jp-brand-color4);
}

.jp-icon-brand0[stroke] {
  stroke: var(--jp-brand-color0);
}

.jp-icon-brand1[stroke] {
  stroke: var(--jp-brand-color1);
}

.jp-icon-brand2[stroke] {
  stroke: var(--jp-brand-color2);
}

.jp-icon-brand3[stroke] {
  stroke: var(--jp-brand-color3);
}

.jp-icon-brand4[stroke] {
  stroke: var(--jp-brand-color4);
}

/* warn icon colors. Same for light and dark */
.jp-icon-warn0[fill] {
  fill: var(--jp-warn-color0);
}

.jp-icon-warn1[fill] {
  fill: var(--jp-warn-color1);
}

.jp-icon-warn2[fill] {
  fill: var(--jp-warn-color2);
}

.jp-icon-warn3[fill] {
  fill: var(--jp-warn-color3);
}

.jp-icon-warn0[stroke] {
  stroke: var(--jp-warn-color0);
}

.jp-icon-warn1[stroke] {
  stroke: var(--jp-warn-color1);
}

.jp-icon-warn2[stroke] {
  stroke: var(--jp-warn-color2);
}

.jp-icon-warn3[stroke] {
  stroke: var(--jp-warn-color3);
}

/* icon colors that contrast well with each other and most backgrounds */
.jp-icon-contrast0[fill] {
  fill: var(--jp-icon-contrast-color0);
}

.jp-icon-contrast1[fill] {
  fill: var(--jp-icon-contrast-color1);
}

.jp-icon-contrast2[fill] {
  fill: var(--jp-icon-contrast-color2);
}

.jp-icon-contrast3[fill] {
  fill: var(--jp-icon-contrast-color3);
}

.jp-icon-contrast0[stroke] {
  stroke: var(--jp-icon-contrast-color0);
}

.jp-icon-contrast1[stroke] {
  stroke: var(--jp-icon-contrast-color1);
}

.jp-icon-contrast2[stroke] {
  stroke: var(--jp-icon-contrast-color2);
}

.jp-icon-contrast3[stroke] {
  stroke: var(--jp-icon-contrast-color3);
}

.jp-icon-dot[fill] {
  fill: var(--jp-warn-color0);
}

.jp-jupyter-icon-color[fill] {
  fill: var(--jp-jupyter-icon-color, var(--jp-warn-color0));
}

.jp-notebook-icon-color[fill] {
  fill: var(--jp-notebook-icon-color, var(--jp-warn-color0));
}

.jp-json-icon-color[fill] {
  fill: var(--jp-json-icon-color, var(--jp-warn-color1));
}

.jp-console-icon-color[fill] {
  fill: var(--jp-console-icon-color, white);
}

.jp-console-icon-background-color[fill] {
  fill: var(--jp-console-icon-background-color, var(--jp-brand-color1));
}

.jp-terminal-icon-color[fill] {
  fill: var(--jp-terminal-icon-color, var(--jp-layout-color2));
}

.jp-terminal-icon-background-color[fill] {
  fill: var(
    --jp-terminal-icon-background-color,
    var(--jp-inverse-layout-color2)
  );
}

.jp-text-editor-icon-color[fill] {
  fill: var(--jp-text-editor-icon-color, var(--jp-inverse-layout-color3));
}

.jp-inspector-icon-color[fill] {
  fill: var(--jp-inspector-icon-color, var(--jp-inverse-layout-color3));
}

/* CSS for icons in selected filebrowser listing items */
.jp-DirListing-item.jp-mod-selected .jp-icon-selectable[fill] {
  fill: #fff;
}

.jp-DirListing-item.jp-mod-selected .jp-icon-selectable-inverse[fill] {
  fill: var(--jp-brand-color1);
}

/* stylelint-disable selector-max-class, selector-max-compound-selectors */

/**
* TODO: come up with non css-hack solution for showing the busy icon on top
*  of the close icon
* CSS for complex behavior of close icon of tabs in the main area tabbar
*/
.lm-DockPanel-tabBar
  .lm-TabBar-tab.lm-mod-closable.jp-mod-dirty
  &gt; .lm-TabBar-tabCloseIcon
  &gt; :not(:hover)
  &gt; .jp-icon3[fill] {
  fill: none;
}

.lm-DockPanel-tabBar
  .lm-TabBar-tab.lm-mod-closable.jp-mod-dirty
  &gt; .lm-TabBar-tabCloseIcon
  &gt; :not(:hover)
  &gt; .jp-icon-busy[fill] {
  fill: var(--jp-inverse-layout-color3);
}

/* stylelint-enable selector-max-class, selector-max-compound-selectors */

/* CSS for icons in status bar */
#jp-main-statusbar .jp-mod-selected .jp-icon-selectable[fill] {
  fill: #fff;
}

#jp-main-statusbar .jp-mod-selected .jp-icon-selectable-inverse[fill] {
  fill: var(--jp-brand-color1);
}

/* special handling for splash icon CSS. While the theme CSS reloads during
   splash, the splash icon can loose theming. To prevent that, we set a
   default for its color variable */
:root {
  --jp-warn-color0: var(--md-orange-700);
}

/* not sure what to do with this one, used in filebrowser listing */
.jp-DragIcon {
  margin-right: 4px;
}

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

/**
 * Support for alt colors for icons as inline SVG HTMLElements
 */

/* alt recolor the primary elements of an icon */
.jp-icon-alt .jp-icon0[fill] {
  fill: var(--jp-layout-color0);
}

.jp-icon-alt .jp-icon1[fill] {
  fill: var(--jp-layout-color1);
}

.jp-icon-alt .jp-icon2[fill] {
  fill: var(--jp-layout-color2);
}

.jp-icon-alt .jp-icon3[fill] {
  fill: var(--jp-layout-color3);
}

.jp-icon-alt .jp-icon4[fill] {
  fill: var(--jp-layout-color4);
}

.jp-icon-alt .jp-icon0[stroke] {
  stroke: var(--jp-layout-color0);
}

.jp-icon-alt .jp-icon1[stroke] {
  stroke: var(--jp-layout-color1);
}

.jp-icon-alt .jp-icon2[stroke] {
  stroke: var(--jp-layout-color2);
}

.jp-icon-alt .jp-icon3[stroke] {
  stroke: var(--jp-layout-color3);
}

.jp-icon-alt .jp-icon4[stroke] {
  stroke: var(--jp-layout-color4);
}

/* alt recolor the accent elements of an icon */
.jp-icon-alt .jp-icon-accent0[fill] {
  fill: var(--jp-inverse-layout-color0);
}

.jp-icon-alt .jp-icon-accent1[fill] {
  fill: var(--jp-inverse-layout-color1);
}

.jp-icon-alt .jp-icon-accent2[fill] {
  fill: var(--jp-inverse-layout-color2);
}

.jp-icon-alt .jp-icon-accent3[fill] {
  fill: var(--jp-inverse-layout-color3);
}

.jp-icon-alt .jp-icon-accent4[fill] {
  fill: var(--jp-inverse-layout-color4);
}

.jp-icon-alt .jp-icon-accent0[stroke] {
  stroke: var(--jp-inverse-layout-color0);
}

.jp-icon-alt .jp-icon-accent1[stroke] {
  stroke: var(--jp-inverse-layout-color1);
}

.jp-icon-alt .jp-icon-accent2[stroke] {
  stroke: var(--jp-inverse-layout-color2);
}

.jp-icon-alt .jp-icon-accent3[stroke] {
  stroke: var(--jp-inverse-layout-color3);
}

.jp-icon-alt .jp-icon-accent4[stroke] {
  stroke: var(--jp-inverse-layout-color4);
}

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

.jp-icon-hoverShow:not(:hover) .jp-icon-hoverShow-content {
  display: none !important;
}

/**
 * Support for hover colors for icons as inline SVG HTMLElements
 */

/**
 * regular colors
 */

/* recolor the primary elements of an icon */
.jp-icon-hover :hover .jp-icon0-hover[fill] {
  fill: var(--jp-inverse-layout-color0);
}

.jp-icon-hover :hover .jp-icon1-hover[fill] {
  fill: var(--jp-inverse-layout-color1);
}

.jp-icon-hover :hover .jp-icon2-hover[fill] {
  fill: var(--jp-inverse-layout-color2);
}

.jp-icon-hover :hover .jp-icon3-hover[fill] {
  fill: var(--jp-inverse-layout-color3);
}

.jp-icon-hover :hover .jp-icon4-hover[fill] {
  fill: var(--jp-inverse-layout-color4);
}

.jp-icon-hover :hover .jp-icon0-hover[stroke] {
  stroke: var(--jp-inverse-layout-color0);
}

.jp-icon-hover :hover .jp-icon1-hover[stroke] {
  stroke: var(--jp-inverse-layout-color1);
}

.jp-icon-hover :hover .jp-icon2-hover[stroke] {
  stroke: var(--jp-inverse-layout-color2);
}

.jp-icon-hover :hover .jp-icon3-hover[stroke] {
  stroke: var(--jp-inverse-layout-color3);
}

.jp-icon-hover :hover .jp-icon4-hover[stroke] {
  stroke: var(--jp-inverse-layout-color4);
}

/* recolor the accent elements of an icon */
.jp-icon-hover :hover .jp-icon-accent0-hover[fill] {
  fill: var(--jp-layout-color0);
}

.jp-icon-hover :hover .jp-icon-accent1-hover[fill] {
  fill: var(--jp-layout-color1);
}

.jp-icon-hover :hover .jp-icon-accent2-hover[fill] {
  fill: var(--jp-layout-color2);
}

.jp-icon-hover :hover .jp-icon-accent3-hover[fill] {
  fill: var(--jp-layout-color3);
}

.jp-icon-hover :hover .jp-icon-accent4-hover[fill] {
  fill: var(--jp-layout-color4);
}

.jp-icon-hover :hover .jp-icon-accent0-hover[stroke] {
  stroke: var(--jp-layout-color0);
}

.jp-icon-hover :hover .jp-icon-accent1-hover[stroke] {
  stroke: var(--jp-layout-color1);
}

.jp-icon-hover :hover .jp-icon-accent2-hover[stroke] {
  stroke: var(--jp-layout-color2);
}

.jp-icon-hover :hover .jp-icon-accent3-hover[stroke] {
  stroke: var(--jp-layout-color3);
}

.jp-icon-hover :hover .jp-icon-accent4-hover[stroke] {
  stroke: var(--jp-layout-color4);
}

/* set the color of an icon to transparent */
.jp-icon-hover :hover .jp-icon-none-hover[fill] {
  fill: none;
}

.jp-icon-hover :hover .jp-icon-none-hover[stroke] {
  stroke: none;
}

/**
 * inverse colors
 */

/* inverse recolor the primary elements of an icon */
.jp-icon-hover.jp-icon-alt :hover .jp-icon0-hover[fill] {
  fill: var(--jp-layout-color0);
}

.jp-icon-hover.jp-icon-alt :hover .jp-icon1-hover[fill] {
  fill: var(--jp-layout-color1);
}

.jp-icon-hover.jp-icon-alt :hover .jp-icon2-hover[fill] {
  fill: var(--jp-layout-color2);
}

.jp-icon-hover.jp-icon-alt :hover .jp-icon3-hover[fill] {
  fill: var(--jp-layout-color3);
}

.jp-icon-hover.jp-icon-alt :hover .jp-icon4-hover[fill] {
  fill: var(--jp-layout-color4);
}

.jp-icon-hover.jp-icon-alt :hover .jp-icon0-hover[stroke] {
  stroke: var(--jp-layout-color0);
}

.jp-icon-hover.jp-icon-alt :hover .jp-icon1-hover[stroke] {
  stroke: var(--jp-layout-color1);
}

.jp-icon-hover.jp-icon-alt :hover .jp-icon2-hover[stroke] {
  stroke: var(--jp-layout-color2);
}

.jp-icon-hover.jp-icon-alt :hover .jp-icon3-hover[stroke] {
  stroke: var(--jp-layout-color3);
}

.jp-icon-hover.jp-icon-alt :hover .jp-icon4-hover[stroke] {
  stroke: var(--jp-layout-color4);
}

/* inverse recolor the accent elements of an icon */
.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent0-hover[fill] {
  fill: var(--jp-inverse-layout-color0);
}

.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent1-hover[fill] {
  fill: var(--jp-inverse-layout-color1);
}

.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent2-hover[fill] {
  fill: var(--jp-inverse-layout-color2);
}

.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent3-hover[fill] {
  fill: var(--jp-inverse-layout-color3);
}

.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent4-hover[fill] {
  fill: var(--jp-inverse-layout-color4);
}

.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent0-hover[stroke] {
  stroke: var(--jp-inverse-layout-color0);
}

.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent1-hover[stroke] {
  stroke: var(--jp-inverse-layout-color1);
}

.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent2-hover[stroke] {
  stroke: var(--jp-inverse-layout-color2);
}

.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent3-hover[stroke] {
  stroke: var(--jp-inverse-layout-color3);
}

.jp-icon-hover.jp-icon-alt :hover .jp-icon-accent4-hover[stroke] {
  stroke: var(--jp-inverse-layout-color4);
}

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

.jp-IFrame {
  width: 100%;
  height: 100%;
}

.jp-IFrame &gt; iframe {
  border: none;
}

/*
When drag events occur, `lm-mod-override-cursor` is added to the body.
Because iframes steal all cursor events, the following two rules are necessary
to suppress pointer events while resize drags are occurring. There may be a
better solution to this problem.
*/
body.lm-mod-override-cursor .jp-IFrame {
  position: relative;
}

body.lm-mod-override-cursor .jp-IFrame::before {
  content: &#39;&#39;;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: transparent;
}

/*-----------------------------------------------------------------------------
| Copyright (c) 2014-2016, Jupyter Development Team.
|
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

.jp-HoverBox {
  position: fixed;
}

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

.jp-FormGroup-content fieldset {
  border: none;
  padding: 0;
  min-width: 0;
  width: 100%;
}

/* stylelint-disable selector-max-type */

.jp-FormGroup-content fieldset .jp-inputFieldWrapper input,
.jp-FormGroup-content fieldset .jp-inputFieldWrapper select,
.jp-FormGroup-content fieldset .jp-inputFieldWrapper textarea {
  font-size: var(--jp-content-font-size2);
  border-color: var(--jp-input-border-color);
  border-style: solid;
  border-radius: var(--jp-border-radius);
  border-width: 1px;
  padding: 6px 8px;
  background: none;
  color: var(--jp-ui-font-color0);
  height: inherit;
}

.jp-FormGroup-content fieldset input[type=&#39;checkbox&#39;] {
  position: relative;
  top: 2px;
  margin-left: 0;
}

.jp-FormGroup-content button.jp-mod-styled {
  cursor: pointer;
}

.jp-FormGroup-content .checkbox label {
  cursor: pointer;
  font-size: var(--jp-content-font-size1);
}

.jp-FormGroup-content .jp-root &gt; fieldset &gt; legend {
  display: none;
}

.jp-FormGroup-content .jp-root &gt; fieldset &gt; p {
  display: none;
}

/** copy of `input.jp-mod-styled:focus` style */
.jp-FormGroup-content fieldset input:focus,
.jp-FormGroup-content fieldset select:focus {
  -moz-outline-radius: unset;
  outline: var(--jp-border-width) solid var(--md-blue-500);
  outline-offset: -1px;
  box-shadow: inset 0 0 4px var(--md-blue-300);
}

.jp-FormGroup-content fieldset input:hover:not(:focus),
.jp-FormGroup-content fieldset select:hover:not(:focus) {
  background-color: var(--jp-border-color2);
}

/* stylelint-enable selector-max-type */

.jp-FormGroup-content .checkbox .field-description {
  /* Disable default description field for checkbox:
   because other widgets do not have description fields,
   we add descriptions to each widget on the field level.
  */
  display: none;
}

.jp-FormGroup-content #root__description {
  display: none;
}

.jp-FormGroup-content .jp-modifiedIndicator {
  width: 5px;
  background-color: var(--jp-brand-color2);
  margin-top: 0;
  margin-left: calc(var(--jp-private-settingeditor-modifier-indent) * -1);
  flex-shrink: 0;
}

.jp-FormGroup-content .jp-modifiedIndicator.jp-errorIndicator {
  background-color: var(--jp-error-color0);
  margin-right: 0.5em;
}

/* RJSF ARRAY style */

.jp-arrayFieldWrapper legend {
  font-size: var(--jp-content-font-size2);
  color: var(--jp-ui-font-color0);
  flex-basis: 100%;
  padding: 4px 0;
  font-weight: var(--jp-content-heading-font-weight);
  border-bottom: 1px solid var(--jp-border-color2);
}

.jp-arrayFieldWrapper .field-description {
  padding: 4px 0;
  white-space: pre-wrap;
}

.jp-arrayFieldWrapper .array-item {
  width: 100%;
  border: 1px solid var(--jp-border-color2);
  border-radius: 4px;
  margin: 4px;
}

.jp-ArrayOperations {
  display: flex;
  margin-left: 8px;
}

.jp-ArrayOperationsButton {
  margin: 2px;
}

.jp-ArrayOperationsButton .jp-icon3[fill] {
  fill: var(--jp-ui-font-color0);
}

button.jp-ArrayOperationsButton.jp-mod-styled:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

/* RJSF form validation error */

.jp-FormGroup-content .validationErrors {
  color: var(--jp-error-color0);
}

/* Hide panel level error as duplicated the field level error */
.jp-FormGroup-content .panel.errors {
  display: none;
}

/* RJSF normal content (settings-editor) */

.jp-FormGroup-contentNormal {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}

.jp-FormGroup-contentNormal .jp-FormGroup-contentItem {
  margin-left: 7px;
  color: var(--jp-ui-font-color0);
}

.jp-FormGroup-contentNormal .jp-FormGroup-description {
  flex-basis: 100%;
  padding: 4px 7px;
}

.jp-FormGroup-contentNormal .jp-FormGroup-default {
  flex-basis: 100%;
  padding: 4px 7px;
}

.jp-FormGroup-contentNormal .jp-FormGroup-fieldLabel {
  font-size: var(--jp-content-font-size1);
  font-weight: normal;
  min-width: 120px;
}

.jp-FormGroup-contentNormal fieldset:not(:first-child) {
  margin-left: 7px;
}

.jp-FormGroup-contentNormal .field-array-of-string .array-item {
  /* Display `jp-ArrayOperations` buttons side-by-side with content except
    for small screens where flex-wrap will place them one below the other.
  */
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}

.jp-FormGroup-contentNormal .jp-objectFieldWrapper .form-group {
  padding: 2px 8px 2px var(--jp-private-settingeditor-modifier-indent);
  margin-top: 2px;
}

/* RJSF compact content (metadata-form) */

.jp-FormGroup-content.jp-FormGroup-contentCompact {
  width: 100%;
}

.jp-FormGroup-contentCompact .form-group {
  display: flex;
  padding: 0.5em 0.2em 0.5em 0;
}

.jp-FormGroup-contentCompact
  .jp-FormGroup-compactTitle
  .jp-FormGroup-description {
  font-size: var(--jp-ui-font-size1);
  color: var(--jp-ui-font-color2);
}

.jp-FormGroup-contentCompact .jp-FormGroup-fieldLabel {
  padding-bottom: 0.3em;
}

.jp-FormGroup-contentCompact .jp-inputFieldWrapper .form-control {
  width: 100%;
  box-sizing: border-box;
}

.jp-FormGroup-contentCompact .jp-arrayFieldWrapper .jp-FormGroup-compactTitle {
  padding-bottom: 7px;
}

.jp-FormGroup-contentCompact
  .jp-objectFieldWrapper
  .jp-objectFieldWrapper
  .form-group {
  padding: 2px 8px 2px var(--jp-private-settingeditor-modifier-indent);
  margin-top: 2px;
}

.jp-FormGroup-contentCompact ul.error-detail {
  margin-block-start: 0.5em;
  margin-block-end: 0.5em;
  padding-inline-start: 1em;
}

/*
 * Copyright (c) Jupyter Development Team.
 * Distributed under the terms of the Modified BSD License.
 */

.jp-SidePanel {
  display: flex;
  flex-direction: column;
  min-width: var(--jp-sidebar-min-width);
  overflow-y: auto;
  color: var(--jp-ui-font-color1);
  background: var(--jp-layout-color1);
  font-size: var(--jp-ui-font-size1);
}

.jp-SidePanel-header {
  flex: 0 0 auto;
  display: flex;
  border-bottom: var(--jp-border-width) solid var(--jp-border-color2);
  font-size: var(--jp-ui-font-size0);
  font-weight: 600;
  letter-spacing: 1px;
  margin: 0;
  padding: 2px;
  text-transform: uppercase;
}

.jp-SidePanel-toolbar {
  flex: 0 0 auto;
}

.jp-SidePanel-content {
  flex: 1 1 auto;
}

.jp-SidePanel-toolbar,
.jp-AccordionPanel-toolbar {
  height: var(--jp-private-toolbar-height);
}

.jp-SidePanel-toolbar.jp-Toolbar-micro {
  display: none;
}

.lm-AccordionPanel .jp-AccordionPanel-title {
  box-sizing: border-box;
  line-height: 25px;
  margin: 0;
  display: flex;
  align-items: center;
  background: var(--jp-layout-color1);
  color: var(--jp-ui-font-color1);
  border-bottom: var(--jp-border-width) solid var(--jp-toolbar-border-color);
  box-shadow: var(--jp-toolbar-box-shadow);
  font-size: var(--jp-ui-font-size0);
}

.jp-AccordionPanel-title {
  cursor: pointer;
  user-select: none;
  -moz-user-select: none;
  -webkit-user-select: none;
  text-transform: uppercase;
}

.lm-AccordionPanel[data-orientation=&#39;horizontal&#39;] &gt; .jp-AccordionPanel-title {
  /* Title is rotated for horizontal accordion panel using CSS */
  display: block;
  transform-origin: top left;
  transform: rotate(-90deg) translate(-100%);
}

.jp-AccordionPanel-title .lm-AccordionPanel-titleLabel {
  user-select: none;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}

.jp-AccordionPanel-title .lm-AccordionPanel-titleCollapser {
  transform: rotate(-90deg);
  margin: auto 0;
  height: 16px;
}

.jp-AccordionPanel-title.lm-mod-expanded .lm-AccordionPanel-titleCollapser {
  transform: rotate(0deg);
}

.lm-AccordionPanel .jp-AccordionPanel-toolbar {
  background: none;
  box-shadow: none;
  border: none;
  margin-left: auto;
}

.lm-AccordionPanel .lm-SplitPanel-handle:hover {
  background: var(--jp-layout-color3);
}

.jp-text-truncated {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/*-----------------------------------------------------------------------------
| Copyright (c) 2017, Jupyter Development Team.
|
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

.jp-Spinner {
  position: absolute;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 10;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: var(--jp-layout-color0);
  outline: none;
}

.jp-SpinnerContent {
  font-size: 10px;
  margin: 50px auto;
  text-indent: -9999em;
  width: 3em;
  height: 3em;
  border-radius: 50%;
  background: var(--jp-brand-color3);
  background: linear-gradient(
    to right,
    #f37626 10%,
    rgba(255, 255, 255, 0) 42%
  );
  position: relative;
  animation: load3 1s infinite linear, fadeIn 1s;
}

.jp-SpinnerContent::before {
  width: 50%;
  height: 50%;
  background: #f37626;
  border-radius: 100% 0 0;
  position: absolute;
  top: 0;
  left: 0;
  content: &#39;&#39;;
}

.jp-SpinnerContent::after {
  background: var(--jp-layout-color0);
  width: 75%;
  height: 75%;
  border-radius: 50%;
  content: &#39;&#39;;
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

@keyframes load3 {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

/*-----------------------------------------------------------------------------
| Copyright (c) 2014-2017, Jupyter Development Team.
|
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

button.jp-mod-styled {
  font-size: var(--jp-ui-font-size1);
  color: var(--jp-ui-font-color0);
  border: none;
  box-sizing: border-box;
  text-align: center;
  line-height: 32px;
  height: 32px;
  padding: 0 12px;
  letter-spacing: 0.8px;
  outline: none;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}

input.jp-mod-styled {
  background: var(--jp-input-background);
  height: 28px;
  box-sizing: border-box;
  border: var(--jp-border-width) solid var(--jp-border-color1);
  padding-left: 7px;
  padding-right: 7px;
  font-size: var(--jp-ui-font-size2);
  color: var(--jp-ui-font-color0);
  outline: none;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}

input[type=&#39;checkbox&#39;].jp-mod-styled {
  appearance: checkbox;
  -webkit-appearance: checkbox;
  -moz-appearance: checkbox;
  height: auto;
}

input.jp-mod-styled:focus {
  border: var(--jp-border-width) solid var(--md-blue-500);
  box-shadow: inset 0 0 4px var(--md-blue-300);
}

.jp-select-wrapper {
  display: flex;
  position: relative;
  flex-direction: column;
  padding: 1px;
  background-color: var(--jp-layout-color1);
  box-sizing: border-box;
  margin-bottom: 12px;
}

.jp-select-wrapper:not(.multiple) {
  height: 28px;
}

.jp-select-wrapper.jp-mod-focused select.jp-mod-styled {
  border: var(--jp-border-width) solid var(--jp-input-active-border-color);
  box-shadow: var(--jp-input-box-shadow);
  background-color: var(--jp-input-active-background);
}

select.jp-mod-styled:hover {
  cursor: pointer;
  color: var(--jp-ui-font-color0);
  background-color: var(--jp-input-hover-background);
  box-shadow: inset 0 0 1px rgba(0, 0, 0, 0.5);
}

select.jp-mod-styled {
  flex: 1 1 auto;
  width: 100%;
  font-size: var(--jp-ui-font-size2);
  background: var(--jp-input-background);
  color: var(--jp-ui-font-color0);
  padding: 0 25px 0 8px;
  border: var(--jp-border-width) solid var(--jp-input-border-color);
  border-radius: 0;
  outline: none;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}

select.jp-mod-styled:not([multiple]) {
  height: 32px;
}

select.jp-mod-styled[multiple] {
  max-height: 200px;
  overflow-y: auto;
}

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

.jp-switch {
  display: flex;
  align-items: center;
  padding-left: 4px;
  padding-right: 4px;
  font-size: var(--jp-ui-font-size1);
  background-color: transparent;
  color: var(--jp-ui-font-color1);
  border: none;
  height: 20px;
}

.jp-switch:hover {
  background-color: var(--jp-layout-color2);
}

.jp-switch-label {
  margin-right: 5px;
  font-family: var(--jp-ui-font-family);
}

.jp-switch-track {
  cursor: pointer;
  background-color: var(--jp-switch-color, var(--jp-border-color1));
  -webkit-transition: 0.4s;
  transition: 0.4s;
  border-radius: 34px;
  height: 16px;
  width: 35px;
  position: relative;
}

.jp-switch-track::before {
  content: &#39;&#39;;
  position: absolute;
  height: 10px;
  width: 10px;
  margin: 3px;
  left: 0;
  background-color: var(--jp-ui-inverse-font-color1);
  -webkit-transition: 0.4s;
  transition: 0.4s;
  border-radius: 50%;
}

.jp-switch[aria-checked=&#39;true&#39;] .jp-switch-track {
  background-color: var(--jp-switch-true-position-color, var(--jp-warn-color0));
}

.jp-switch[aria-checked=&#39;true&#39;] .jp-switch-track::before {
  /* track width (35) - margins (3 + 3) - thumb width (10) */
  left: 19px;
}

/*-----------------------------------------------------------------------------
| Copyright (c) 2014-2016, Jupyter Development Team.
|
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

:root {
  --jp-private-toolbar-height: calc(
    28px + var(--jp-border-width)
  ); /* leave 28px for content */
}

.jp-Toolbar {
  color: var(--jp-ui-font-color1);
  flex: 0 0 auto;
  display: flex;
  flex-direction: row;
  border-bottom: var(--jp-border-width) solid var(--jp-toolbar-border-color);
  box-shadow: var(--jp-toolbar-box-shadow);
  background: var(--jp-toolbar-background);
  min-height: var(--jp-toolbar-micro-height);
  padding: 2px;
  z-index: 8;
  overflow-x: hidden;
}

/* Toolbar items */

.jp-Toolbar &gt; .jp-Toolbar-item.jp-Toolbar-spacer {
  flex-grow: 1;
  flex-shrink: 1;
}

.jp-Toolbar-item.jp-Toolbar-kernelStatus {
  display: inline-block;
  width: 32px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 16px;
}

.jp-Toolbar &gt; .jp-Toolbar-item {
  flex: 0 0 auto;
  display: flex;
  padding-left: 1px;
  padding-right: 1px;
  font-size: var(--jp-ui-font-size1);
  line-height: var(--jp-private-toolbar-height);
  height: 100%;
}

/* Toolbar buttons */

/* This is the div we use to wrap the react component into a Widget */
div.jp-ToolbarButton {
  color: transparent;
  border: none;
  box-sizing: border-box;
  outline: none;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  padding: 0;
  margin: 0;
}

button.jp-ToolbarButtonComponent {
  background: var(--jp-layout-color1);
  border: none;
  box-sizing: border-box;
  outline: none;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  padding: 0 6px;
  margin: 0;
  height: 24px;
  border-radius: var(--jp-border-radius);
  display: flex;
  align-items: center;
  text-align: center;
  font-size: 14px;
  min-width: unset;
  min-height: unset;
}

button.jp-ToolbarButtonComponent:disabled {
  opacity: 0.4;
}

button.jp-ToolbarButtonComponent &gt; span {
  padding: 0;
  flex: 0 0 auto;
}

button.jp-ToolbarButtonComponent .jp-ToolbarButtonComponent-label {
  font-size: var(--jp-ui-font-size1);
  line-height: 100%;
  padding-left: 2px;
  color: var(--jp-ui-font-color1);
  font-family: var(--jp-ui-font-family);
}

#jp-main-dock-panel[data-mode=&#39;single-document&#39;]
  .jp-MainAreaWidget
  &gt; .jp-Toolbar.jp-Toolbar-micro {
  padding: 0;
  min-height: 0;
}

#jp-main-dock-panel[data-mode=&#39;single-document&#39;]
  .jp-MainAreaWidget
  &gt; .jp-Toolbar {
  border: none;
  box-shadow: none;
}

/*
 * Copyright (c) Jupyter Development Team.
 * Distributed under the terms of the Modified BSD License.
 */

.jp-WindowedPanel-outer {
  position: relative;
  overflow-y: auto;
}

.jp-WindowedPanel-inner {
  position: relative;
}

.jp-WindowedPanel-window {
  position: absolute;
  left: 0;
  right: 0;
  overflow: visible;
}

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

/* Sibling imports */

body {
  color: var(--jp-ui-font-color1);
  font-size: var(--jp-ui-font-size1);
}

/* Disable native link decoration styles everywhere outside of dialog boxes */
a {
  text-decoration: unset;
  color: unset;
}

a:hover {
  text-decoration: unset;
  color: unset;
}

/* Accessibility for links inside dialog box text */
.jp-Dialog-content a {
  text-decoration: revert;
  color: var(--jp-content-link-color);
}

.jp-Dialog-content a:hover {
  text-decoration: revert;
}

/* Styles for ui-components */
.jp-Button {
  color: var(--jp-ui-font-color2);
  border-radius: var(--jp-border-radius);
  padding: 0 12px;
  font-size: var(--jp-ui-font-size1);

  /* Copy from blueprint 3 */
  display: inline-flex;
  flex-direction: row;
  border: none;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  text-align: left;
  vertical-align: middle;
  min-height: 30px;
  min-width: 30px;
}

.jp-Button:disabled {
  cursor: not-allowed;
}

.jp-Button:empty {
  padding: 0 !important;
}

.jp-Button.jp-mod-small {
  min-height: 24px;
  min-width: 24px;
  font-size: 12px;
  padding: 0 7px;
}

/* Use our own theme for hover styles */
.jp-Button.jp-mod-minimal:hover {
  background-color: var(--jp-layout-color2);
}

.jp-Button.jp-mod-minimal {
  background: none;
}

.jp-InputGroup {
  display: block;
  position: relative;
}

.jp-InputGroup input {
  box-sizing: border-box;
  border: none;
  border-radius: 0;
  background-color: transparent;
  color: var(--jp-ui-font-color0);
  box-shadow: inset 0 0 0 var(--jp-border-width) var(--jp-input-border-color);
  padding-bottom: 0;
  padding-top: 0;
  padding-left: 10px;
  padding-right: 28px;
  position: relative;
  width: 100%;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  font-size: 14px;
  font-weight: 400;
  height: 30px;
  line-height: 30px;
  outline: none;
  vertical-align: middle;
}

.jp-InputGroup input:focus {
  box-shadow: inset 0 0 0 var(--jp-border-width)
      var(--jp-input-active-box-shadow-color),
    inset 0 0 0 3px var(--jp-input-active-box-shadow-color);
}

.jp-InputGroup input:disabled {
  cursor: not-allowed;
  resize: block;
  background-color: var(--jp-layout-color2);
  color: var(--jp-ui-font-color2);
}

.jp-InputGroup input:disabled ~ span {
  cursor: not-allowed;
  color: var(--jp-ui-font-color2);
}

.jp-InputGroup input::placeholder,
input::placeholder {
  color: var(--jp-ui-font-color2);
}

.jp-InputGroupAction {
  position: absolute;
  bottom: 1px;
  right: 0;
  padding: 6px;
}

.jp-HTMLSelect.jp-DefaultStyle select {
  background-color: initial;
  border: none;
  border-radius: 0;
  box-shadow: none;
  color: var(--jp-ui-font-color0);
  display: block;
  font-size: var(--jp-ui-font-size1);
  font-family: var(--jp-ui-font-family);
  height: 24px;
  line-height: 14px;
  padding: 0 25px 0 10px;
  text-align: left;
  -moz-appearance: none;
  -webkit-appearance: none;
}

.jp-HTMLSelect.jp-DefaultStyle select:disabled {
  background-color: var(--jp-layout-color2);
  color: var(--jp-ui-font-color2);
  cursor: not-allowed;
  resize: block;
}

.jp-HTMLSelect.jp-DefaultStyle select:disabled ~ span {
  cursor: not-allowed;
}

/* Use our own theme for hover and option styles */
/* stylelint-disable-next-line selector-max-type */
.jp-HTMLSelect.jp-DefaultStyle select:hover,
.jp-HTMLSelect.jp-DefaultStyle select &gt; option {
  background-color: var(--jp-layout-color2);
  color: var(--jp-ui-font-color0);
}

select {
  box-sizing: border-box;
}

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

/*-----------------------------------------------------------------------------
| Styles
|----------------------------------------------------------------------------*/

.jp-StatusBar-Widget {
  display: flex;
  align-items: center;
  background: var(--jp-layout-color2);
  min-height: var(--jp-statusbar-height);
  justify-content: space-between;
  padding: 0 10px;
}

.jp-StatusBar-Left {
  display: flex;
  align-items: center;
  flex-direction: row;
}

.jp-StatusBar-Middle {
  display: flex;
  align-items: center;
}

.jp-StatusBar-Right {
  display: flex;
  align-items: center;
  flex-direction: row-reverse;
}

.jp-StatusBar-Item {
  max-height: var(--jp-statusbar-height);
  margin: 0 2px;
  height: var(--jp-statusbar-height);
  white-space: nowrap;
  text-overflow: ellipsis;
  color: var(--jp-ui-font-color1);
  padding: 0 6px;
}

.jp-mod-highlighted:hover {
  background-color: var(--jp-layout-color3);
}

.jp-mod-clicked {
  background-color: var(--jp-brand-color1);
}

.jp-mod-clicked:hover {
  background-color: var(--jp-brand-color0);
}

.jp-mod-clicked .jp-StatusBar-TextItem {
  color: var(--jp-ui-inverse-font-color1);
}

.jp-StatusBar-HoverItem {
  box-shadow: &#39;0px 4px 4px rgba(0, 0, 0, 0.25)&#39;;
}

.jp-StatusBar-TextItem {
  font-size: var(--jp-ui-font-size1);
  font-family: var(--jp-ui-font-family);
  line-height: 24px;
  color: var(--jp-ui-font-color1);
}

.jp-StatusBar-GroupItem {
  display: flex;
  align-items: center;
  flex-direction: row;
}

.jp-Statusbar-ProgressCircle svg {
  display: block;
  margin: 0 auto;
  width: 16px;
  height: 24px;
  align-self: normal;
}

.jp-Statusbar-ProgressCircle path {
  fill: var(--jp-inverse-layout-color3);
}

.jp-Statusbar-ProgressBar-progress-bar {
  height: 10px;
  width: 100px;
  border: solid 0.25px var(--jp-brand-color2);
  border-radius: 3px;
  overflow: hidden;
  align-self: center;
}

.jp-Statusbar-ProgressBar-progress-bar &gt; div {
  background-color: var(--jp-brand-color2);
  background-image: linear-gradient(
    -45deg,
    rgba(255, 255, 255, 0.2) 25%,
    transparent 25%,
    transparent 50%,
    rgba(255, 255, 255, 0.2) 50%,
    rgba(255, 255, 255, 0.2) 75%,
    transparent 75%,
    transparent
  );
  background-size: 40px 40px;
  float: left;
  width: 0%;
  height: 100%;
  font-size: 12px;
  line-height: 14px;
  color: #fff;
  text-align: center;
  animation: jp-Statusbar-ExecutionTime-progress-bar 2s linear infinite;
}

.jp-Statusbar-ProgressBar-progress-bar p {
  color: var(--jp-ui-font-color1);
  font-family: var(--jp-ui-font-family);
  font-size: var(--jp-ui-font-size1);
  line-height: 10px;
  width: 100px;
}

@keyframes jp-Statusbar-ExecutionTime-progress-bar {
  0% {
    background-position: 0 0;
  }

  100% {
    background-position: 40px 40px;
  }
}

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

/*-----------------------------------------------------------------------------
| Variables
|----------------------------------------------------------------------------*/

:root {
  --jp-private-commandpalette-search-height: 28px;
}

/*-----------------------------------------------------------------------------
| Overall styles
|----------------------------------------------------------------------------*/

.lm-CommandPalette {
  padding-bottom: 0;
  color: var(--jp-ui-font-color1);
  background: var(--jp-layout-color1);

  /* This is needed so that all font sizing of children done in ems is
   * relative to this base size */
  font-size: var(--jp-ui-font-size1);
}

/*-----------------------------------------------------------------------------
| Modal variant
|----------------------------------------------------------------------------*/

.jp-ModalCommandPalette {
  position: absolute;
  z-index: 10000;
  top: 38px;
  left: 30%;
  margin: 0;
  padding: 4px;
  width: 40%;
  box-shadow: var(--jp-elevation-z4);
  border-radius: 4px;
  background: var(--jp-layout-color0);
}

.jp-ModalCommandPalette .lm-CommandPalette {
  max-height: 40vh;
}

.jp-ModalCommandPalette .lm-CommandPalette .lm-close-icon::after {
  display: none;
}

.jp-ModalCommandPalette .lm-CommandPalette .lm-CommandPalette-header {
  display: none;
}

.jp-ModalCommandPalette .lm-CommandPalette .lm-CommandPalette-item {
  margin-left: 4px;
  margin-right: 4px;
}

.jp-ModalCommandPalette
  .lm-CommandPalette
  .lm-CommandPalette-item.lm-mod-disabled {
  display: none;
}

/*-----------------------------------------------------------------------------
| Search
|----------------------------------------------------------------------------*/

.lm-CommandPalette-search {
  padding: 4px;
  background-color: var(--jp-layout-color1);
  z-index: 2;
}

.lm-CommandPalette-wrapper {
  overflow: overlay;
  padding: 0 9px;
  background-color: var(--jp-input-active-background);
  height: 30px;
  box-shadow: inset 0 0 0 var(--jp-border-width) var(--jp-input-border-color);
}

.lm-CommandPalette.lm-mod-focused .lm-CommandPalette-wrapper {
  box-shadow: inset 0 0 0 1px var(--jp-input-active-box-shadow-color),
    inset 0 0 0 3px var(--jp-input-active-box-shadow-color);
}

.jp-SearchIconGroup {
  color: white;
  background-color: var(--jp-brand-color1);
  position: absolute;
  top: 4px;
  right: 4px;
  padding: 5px 5px 1px;
}

.jp-SearchIconGroup svg {
  height: 20px;
  width: 20px;
}

.jp-SearchIconGroup .jp-icon3[fill] {
  fill: var(--jp-layout-color0);
}

.lm-CommandPalette-input {
  background: transparent;
  width: calc(100% - 18px);
  float: left;
  border: none;
  outline: none;
  font-size: var(--jp-ui-font-size1);
  color: var(--jp-ui-font-color0);
  line-height: var(--jp-private-commandpalette-search-height);
}

.lm-CommandPalette-input::-webkit-input-placeholder,
.lm-CommandPalette-input::-moz-placeholder,
.lm-CommandPalette-input:-ms-input-placeholder {
  color: var(--jp-ui-font-color2);
  font-size: var(--jp-ui-font-size1);
}

/*-----------------------------------------------------------------------------
| Results
|----------------------------------------------------------------------------*/

.lm-CommandPalette-header:first-child {
  margin-top: 0;
}

.lm-CommandPalette-header {
  border-bottom: solid var(--jp-border-width) var(--jp-border-color2);
  color: var(--jp-ui-font-color1);
  cursor: pointer;
  display: flex;
  font-size: var(--jp-ui-font-size0);
  font-weight: 600;
  letter-spacing: 1px;
  margin-top: 8px;
  padding: 8px 0 8px 12px;
  text-transform: uppercase;
}

.lm-CommandPalette-header.lm-mod-active {
  background: var(--jp-layout-color2);
}

.lm-CommandPalette-header &gt; mark {
  background-color: transparent;
  font-weight: bold;
  color: var(--jp-ui-font-color1);
}

.lm-CommandPalette-item {
  padding: 4px 12px 4px 4px;
  color: var(--jp-ui-font-color1);
  font-size: var(--jp-ui-font-size1);
  font-weight: 400;
  display: flex;
}

.lm-CommandPalette-item.lm-mod-disabled {
  color: var(--jp-ui-font-color2);
}

.lm-CommandPalette-item.lm-mod-active {
  color: var(--jp-ui-inverse-font-color1);
  background: var(--jp-brand-color1);
}

.lm-CommandPalette-item.lm-mod-active .lm-CommandPalette-itemLabel &gt; mark {
  color: var(--jp-ui-inverse-font-color0);
}

.lm-CommandPalette-item.lm-mod-active .jp-icon-selectable[fill] {
  fill: var(--jp-layout-color0);
}

.lm-CommandPalette-item.lm-mod-active:hover:not(.lm-mod-disabled) {
  color: var(--jp-ui-inverse-font-color1);
  background: var(--jp-brand-color1);
}

.lm-CommandPalette-item:hover:not(.lm-mod-active):not(.lm-mod-disabled) {
  background: var(--jp-layout-color2);
}

.lm-CommandPalette-itemContent {
  overflow: hidden;
}

.lm-CommandPalette-itemLabel &gt; mark {
  color: var(--jp-ui-font-color0);
  background-color: transparent;
  font-weight: bold;
}

.lm-CommandPalette-item.lm-mod-disabled mark {
  color: var(--jp-ui-font-color2);
}

.lm-CommandPalette-item .lm-CommandPalette-itemIcon {
  margin: 0 4px 0 0;
  position: relative;
  width: 16px;
  top: 2px;
  flex: 0 0 auto;
}

.lm-CommandPalette-item.lm-mod-disabled .lm-CommandPalette-itemIcon {
  opacity: 0.6;
}

.lm-CommandPalette-item .lm-CommandPalette-itemShortcut {
  flex: 0 0 auto;
}

.lm-CommandPalette-itemCaption {
  display: none;
}

.lm-CommandPalette-content {
  background-color: var(--jp-layout-color1);
}

.lm-CommandPalette-content:empty::after {
  content: &#39;No results&#39;;
  margin: auto;
  margin-top: 20px;
  width: 100px;
  display: block;
  font-size: var(--jp-ui-font-size2);
  font-family: var(--jp-ui-font-family);
  font-weight: lighter;
}

.lm-CommandPalette-emptyMessage {
  text-align: center;
  margin-top: 24px;
  line-height: 1.32;
  padding: 0 8px;
  color: var(--jp-content-font-color3);
}

/*-----------------------------------------------------------------------------
| Copyright (c) 2014-2017, Jupyter Development Team.
|
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

.jp-Dialog {
  position: absolute;
  z-index: 10000;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  top: 0;
  left: 0;
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
  background: var(--jp-dialog-background);
}

.jp-Dialog-content {
  display: flex;
  flex-direction: column;
  margin-left: auto;
  margin-right: auto;
  background: var(--jp-layout-color1);
  padding: 24px 24px 12px;
  min-width: 300px;
  min-height: 150px;
  max-width: 1000px;
  max-height: 500px;
  box-sizing: border-box;
  box-shadow: var(--jp-elevation-z20);
  word-wrap: break-word;
  border-radius: var(--jp-border-radius);

  /* This is needed so that all font sizing of children done in ems is
   * relative to this base size */
  font-size: var(--jp-ui-font-size1);
  color: var(--jp-ui-font-color1);
  resize: both;
}

.jp-Dialog-content.jp-Dialog-content-small {
  max-width: 500px;
}

.jp-Dialog-button {
  overflow: visible;
}

button.jp-Dialog-button:focus {
  outline: 1px solid var(--jp-brand-color1);
  outline-offset: 4px;
  -moz-outline-radius: 0;
}

button.jp-Dialog-button:focus::-moz-focus-inner {
  border: 0;
}

button.jp-Dialog-button.jp-mod-styled.jp-mod-accept:focus,
button.jp-Dialog-button.jp-mod-styled.jp-mod-warn:focus,
button.jp-Dialog-button.jp-mod-styled.jp-mod-reject:focus {
  outline-offset: 4px;
  -moz-outline-radius: 0;
}

button.jp-Dialog-button.jp-mod-styled.jp-mod-accept:focus {
  outline: 1px solid var(--jp-accept-color-normal, var(--jp-brand-color1));
}

button.jp-Dialog-button.jp-mod-styled.jp-mod-warn:focus {
  outline: 1px solid var(--jp-warn-color-normal, var(--jp-error-color1));
}

button.jp-Dialog-button.jp-mod-styled.jp-mod-reject:focus {
  outline: 1px solid var(--jp-reject-color-normal, var(--md-grey-600));
}

button.jp-Dialog-close-button {
  padding: 0;
  height: 100%;
  min-width: unset;
  min-height: unset;
}

.jp-Dialog-header {
  display: flex;
  justify-content: space-between;
  flex: 0 0 auto;
  padding-bottom: 12px;
  font-size: var(--jp-ui-font-size3);
  font-weight: 400;
  color: var(--jp-ui-font-color1);
}

.jp-Dialog-body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  font-size: var(--jp-ui-font-size1);
  background: var(--jp-layout-color1);
  color: var(--jp-ui-font-color1);
  overflow: auto;
}

.jp-Dialog-footer {
  display: flex;
  flex-direction: row;
  justify-content: flex-end;
  align-items: center;
  flex: 0 0 auto;
  margin-left: -12px;
  margin-right: -12px;
  padding: 12px;
}

.jp-Dialog-checkbox {
  padding-right: 5px;
}

.jp-Dialog-checkbox &gt; input:focus-visible {
  outline: 1px solid var(--jp-input-active-border-color);
  outline-offset: 1px;
}

.jp-Dialog-spacer {
  flex: 1 1 auto;
}

.jp-Dialog-title {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.jp-Dialog-body &gt; .jp-select-wrapper {
  width: 100%;
}

.jp-Dialog-body &gt; button {
  padding: 0 16px;
}

.jp-Dialog-body &gt; label {
  line-height: 1.4;
  color: var(--jp-ui-font-color0);
}

.jp-Dialog-button.jp-mod-styled:not(:last-child) {
  margin-right: 12px;
}

/*
 * Copyright (c) Jupyter Development Team.
 * Distributed under the terms of the Modified BSD License.
 */

.jp-Input-Boolean-Dialog {
  flex-direction: row-reverse;
  align-items: end;
  width: 100%;
}

.jp-Input-Boolean-Dialog &gt; label {
  flex: 1 1 auto;
}

/*-----------------------------------------------------------------------------
| Copyright (c) 2014-2016, Jupyter Development Team.
|
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

.jp-MainAreaWidget &gt; :focus {
  outline: none;
}

.jp-MainAreaWidget .jp-MainAreaWidget-error {
  padding: 6px;
}

.jp-MainAreaWidget .jp-MainAreaWidget-error &gt; pre {
  width: auto;
  padding: 10px;
  background: var(--jp-error-color3);
  border: var(--jp-border-width) solid var(--jp-error-color1);
  border-radius: var(--jp-border-radius);
  color: var(--jp-ui-font-color1);
  font-size: var(--jp-ui-font-size1);
  white-space: pre-wrap;
  word-wrap: break-word;
}

/*
 * Copyright (c) Jupyter Development Team.
 * Distributed under the terms of the Modified BSD License.
 */

/**
 * google-material-color v1.2.6
 * https://github.com/danlevan/google-material-color
 */
:root {
  --md-red-50: #ffebee;
  --md-red-100: #ffcdd2;
  --md-red-200: #ef9a9a;
  --md-red-300: #e57373;
  --md-red-400: #ef5350;
  --md-red-500: #f44336;
  --md-red-600: #e53935;
  --md-red-700: #d32f2f;
  --md-red-800: #c62828;
  --md-red-900: #b71c1c;
  --md-red-A100: #ff8a80;
  --md-red-A200: #ff5252;
  --md-red-A400: #ff1744;
  --md-red-A700: #d50000;
  --md-pink-50: #fce4ec;
  --md-pink-100: #f8bbd0;
  --md-pink-200: #f48fb1;
  --md-pink-300: #f06292;
  --md-pink-400: #ec407a;
  --md-pink-500: #e91e63;
  --md-pink-600: #d81b60;
  --md-pink-700: #c2185b;
  --md-pink-800: #ad1457;
  --md-pink-900: #880e4f;
  --md-pink-A100: #ff80ab;
  --md-pink-A200: #ff4081;
  --md-pink-A400: #f50057;
  --md-pink-A700: #c51162;
  --md-purple-50: #f3e5f5;
  --md-purple-100: #e1bee7;
  --md-purple-200: #ce93d8;
  --md-purple-300: #ba68c8;
  --md-purple-400: #ab47bc;
  --md-purple-500: #9c27b0;
  --md-purple-600: #8e24aa;
  --md-purple-700: #7b1fa2;
  --md-purple-800: #6a1b9a;
  --md-purple-900: #4a148c;
  --md-purple-A100: #ea80fc;
  --md-purple-A200: #e040fb;
  --md-purple-A400: #d500f9;
  --md-purple-A700: #a0f;
  --md-deep-purple-50: #ede7f6;
  --md-deep-purple-100: #d1c4e9;
  --md-deep-purple-200: #b39ddb;
  --md-deep-purple-300: #9575cd;
  --md-deep-purple-400: #7e57c2;
  --md-deep-purple-500: #673ab7;
  --md-deep-purple-600: #5e35b1;
  --md-deep-purple-700: #512da8;
  --md-deep-purple-800: #4527a0;
  --md-deep-purple-900: #311b92;
  --md-deep-purple-A100: #b388ff;
  --md-deep-purple-A200: #7c4dff;
  --md-deep-purple-A400: #651fff;
  --md-deep-purple-A700: #6200ea;
  --md-indigo-50: #e8eaf6;
  --md-indigo-100: #c5cae9;
  --md-indigo-200: #9fa8da;
  --md-indigo-300: #7986cb;
  --md-indigo-400: #5c6bc0;
  --md-indigo-500: #3f51b5;
  --md-indigo-600: #3949ab;
  --md-indigo-700: #303f9f;
  --md-indigo-800: #283593;
  --md-indigo-900: #1a237e;
  --md-indigo-A100: #8c9eff;
  --md-indigo-A200: #536dfe;
  --md-indigo-A400: #3d5afe;
  --md-indigo-A700: #304ffe;
  --md-blue-50: #e3f2fd;
  --md-blue-100: #bbdefb;
  --md-blue-200: #90caf9;
  --md-blue-300: #64b5f6;
  --md-blue-400: #42a5f5;
  --md-blue-500: #2196f3;
  --md-blue-600: #1e88e5;
  --md-blue-700: #1976d2;
  --md-blue-800: #1565c0;
  --md-blue-900: #0d47a1;
  --md-blue-A100: #82b1ff;
  --md-blue-A200: #448aff;
  --md-blue-A400: #2979ff;
  --md-blue-A700: #2962ff;
  --md-light-blue-50: #e1f5fe;
  --md-light-blue-100: #b3e5fc;
  --md-light-blue-200: #81d4fa;
  --md-light-blue-300: #4fc3f7;
  --md-light-blue-400: #29b6f6;
  --md-light-blue-500: #03a9f4;
  --md-light-blue-600: #039be5;
  --md-light-blue-700: #0288d1;
  --md-light-blue-800: #0277bd;
  --md-light-blue-900: #01579b;
  --md-light-blue-A100: #80d8ff;
  --md-light-blue-A200: #40c4ff;
  --md-light-blue-A400: #00b0ff;
  --md-light-blue-A700: #0091ea;
  --md-cyan-50: #e0f7fa;
  --md-cyan-100: #b2ebf2;
  --md-cyan-200: #80deea;
  --md-cyan-300: #4dd0e1;
  --md-cyan-400: #26c6da;
  --md-cyan-500: #00bcd4;
  --md-cyan-600: #00acc1;
  --md-cyan-700: #0097a7;
  --md-cyan-800: #00838f;
  --md-cyan-900: #006064;
  --md-cyan-A100: #84ffff;
  --md-cyan-A200: #18ffff;
  --md-cyan-A400: #00e5ff;
  --md-cyan-A700: #00b8d4;
  --md-teal-50: #e0f2f1;
  --md-teal-100: #b2dfdb;
  --md-teal-200: #80cbc4;
  --md-teal-300: #4db6ac;
  --md-teal-400: #26a69a;
  --md-teal-500: #009688;
  --md-teal-600: #00897b;
  --md-teal-700: #00796b;
  --md-teal-800: #00695c;
  --md-teal-900: #004d40;
  --md-teal-A100: #a7ffeb;
  --md-teal-A200: #64ffda;
  --md-teal-A400: #1de9b6;
  --md-teal-A700: #00bfa5;
  --md-green-50: #e8f5e9;
  --md-green-100: #c8e6c9;
  --md-green-200: #a5d6a7;
  --md-green-300: #81c784;
  --md-green-400: #66bb6a;
  --md-green-500: #4caf50;
  --md-green-600: #43a047;
  --md-green-700: #388e3c;
  --md-green-800: #2e7d32;
  --md-green-900: #1b5e20;
  --md-green-A100: #b9f6ca;
  --md-green-A200: #69f0ae;
  --md-green-A400: #00e676;
  --md-green-A700: #00c853;
  --md-light-green-50: #f1f8e9;
  --md-light-green-100: #dcedc8;
  --md-light-green-200: #c5e1a5;
  --md-light-green-300: #aed581;
  --md-light-green-400: #9ccc65;
  --md-light-green-500: #8bc34a;
  --md-light-green-600: #7cb342;
  --md-light-green-700: #689f38;
  --md-light-green-800: #558b2f;
  --md-light-green-900: #33691e;
  --md-light-green-A100: #ccff90;
  --md-light-green-A200: #b2ff59;
  --md-light-green-A400: #76ff03;
  --md-light-green-A700: #64dd17;
  --md-lime-50: #f9fbe7;
  --md-lime-100: #f0f4c3;
  --md-lime-200: #e6ee9c;
  --md-lime-300: #dce775;
  --md-lime-400: #d4e157;
  --md-lime-500: #cddc39;
  --md-lime-600: #c0ca33;
  --md-lime-700: #afb42b;
  --md-lime-800: #9e9d24;
  --md-lime-900: #827717;
  --md-lime-A100: #f4ff81;
  --md-lime-A200: #eeff41;
  --md-lime-A400: #c6ff00;
  --md-lime-A700: #aeea00;
  --md-yellow-50: #fffde7;
  --md-yellow-100: #fff9c4;
  --md-yellow-200: #fff59d;
  --md-yellow-300: #fff176;
  --md-yellow-400: #ffee58;
  --md-yellow-500: #ffeb3b;
  --md-yellow-600: #fdd835;
  --md-yellow-700: #fbc02d;
  --md-yellow-800: #f9a825;
  --md-yellow-900: #f57f17;
  --md-yellow-A100: #ffff8d;
  --md-yellow-A200: #ff0;
  --md-yellow-A400: #ffea00;
  --md-yellow-A700: #ffd600;
  --md-amber-50: #fff8e1;
  --md-amber-100: #ffecb3;
  --md-amber-200: #ffe082;
  --md-amber-300: #ffd54f;
  --md-amber-400: #ffca28;
  --md-amber-500: #ffc107;
  --md-amber-600: #ffb300;
  --md-amber-700: #ffa000;
  --md-amber-800: #ff8f00;
  --md-amber-900: #ff6f00;
  --md-amber-A100: #ffe57f;
  --md-amber-A200: #ffd740;
  --md-amber-A400: #ffc400;
  --md-amber-A700: #ffab00;
  --md-orange-50: #fff3e0;
  --md-orange-100: #ffe0b2;
  --md-orange-200: #ffcc80;
  --md-orange-300: #ffb74d;
  --md-orange-400: #ffa726;
  --md-orange-500: #ff9800;
  --md-orange-600: #fb8c00;
  --md-orange-700: #f57c00;
  --md-orange-800: #ef6c00;
  --md-orange-900: #e65100;
  --md-orange-A100: #ffd180;
  --md-orange-A200: #ffab40;
  --md-orange-A400: #ff9100;
  --md-orange-A700: #ff6d00;
  --md-deep-orange-50: #fbe9e7;
  --md-deep-orange-100: #ffccbc;
  --md-deep-orange-200: #ffab91;
  --md-deep-orange-300: #ff8a65;
  --md-deep-orange-400: #ff7043;
  --md-deep-orange-500: #ff5722;
  --md-deep-orange-600: #f4511e;
  --md-deep-orange-700: #e64a19;
  --md-deep-orange-800: #d84315;
  --md-deep-orange-900: #bf360c;
  --md-deep-orange-A100: #ff9e80;
  --md-deep-orange-A200: #ff6e40;
  --md-deep-orange-A400: #ff3d00;
  --md-deep-orange-A700: #dd2c00;
  --md-brown-50: #efebe9;
  --md-brown-100: #d7ccc8;
  --md-brown-200: #bcaaa4;
  --md-brown-300: #a1887f;
  --md-brown-400: #8d6e63;
  --md-brown-500: #795548;
  --md-brown-600: #6d4c41;
  --md-brown-700: #5d4037;
  --md-brown-800: #4e342e;
  --md-brown-900: #3e2723;
  --md-grey-50: #fafafa;
  --md-grey-100: #f5f5f5;
  --md-grey-200: #eee;
  --md-grey-300: #e0e0e0;
  --md-grey-400: #bdbdbd;
  --md-grey-500: #9e9e9e;
  --md-grey-600: #757575;
  --md-grey-700: #616161;
  --md-grey-800: #424242;
  --md-grey-900: #212121;
  --md-blue-grey-50: #eceff1;
  --md-blue-grey-100: #cfd8dc;
  --md-blue-grey-200: #b0bec5;
  --md-blue-grey-300: #90a4ae;
  --md-blue-grey-400: #78909c;
  --md-blue-grey-500: #607d8b;
  --md-blue-grey-600: #546e7a;
  --md-blue-grey-700: #455a64;
  --md-blue-grey-800: #37474f;
  --md-blue-grey-900: #263238;
}

/*-----------------------------------------------------------------------------
| Copyright (c) 2014-2017, Jupyter Development Team.
|
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

/*-----------------------------------------------------------------------------
| RenderedText
|----------------------------------------------------------------------------*/

:root {
  /* This is the padding value to fill the gaps between lines containing spans with background color. */
  --jp-private-code-span-padding: calc(
    (var(--jp-code-line-height) - 1) * var(--jp-code-font-size) / 2
  );
}

.jp-RenderedText {
  text-align: left;
  padding-left: var(--jp-code-padding);
  line-height: var(--jp-code-line-height);
  font-family: var(--jp-code-font-family);
}

.jp-RenderedText pre,
.jp-RenderedJavaScript pre,
.jp-RenderedHTMLCommon pre {
  color: var(--jp-content-font-color1);
  font-size: var(--jp-code-font-size);
  border: none;
  margin: 0;
  padding: 0;
}

.jp-RenderedText pre a:link {
  text-decoration: none;
  color: var(--jp-content-link-color);
}

.jp-RenderedText pre a:hover {
  text-decoration: underline;
  color: var(--jp-content-link-color);
}

.jp-RenderedText pre a:visited {
  text-decoration: none;
  color: var(--jp-content-link-color);
}

/* console foregrounds and backgrounds */
.jp-RenderedText pre .ansi-black-fg {
  color: #3e424d;
}

.jp-RenderedText pre .ansi-red-fg {
  color: #e75c58;
}

.jp-RenderedText pre .ansi-green-fg {
  color: #00a250;
}

.jp-RenderedText pre .ansi-yellow-fg {
  color: #ddb62b;
}

.jp-RenderedText pre .ansi-blue-fg {
  color: #208ffb;
}

.jp-RenderedText pre .ansi-magenta-fg {
  color: #d160c4;
}

.jp-RenderedText pre .ansi-cyan-fg {
  color: #60c6c8;
}

.jp-RenderedText pre .ansi-white-fg {
  color: #c5c1b4;
}

.jp-RenderedText pre .ansi-black-bg {
  background-color: #3e424d;
  padding: var(--jp-private-code-span-padding) 0;
}

.jp-RenderedText pre .ansi-red-bg {
  background-color: #e75c58;
  padding: var(--jp-private-code-span-padding) 0;
}

.jp-RenderedText pre .ansi-green-bg {
  background-color: #00a250;
  padding: var(--jp-private-code-span-padding) 0;
}

.jp-RenderedText pre .ansi-yellow-bg {
  background-color: #ddb62b;
  padding: var(--jp-private-code-span-padding) 0;
}

.jp-RenderedText pre .ansi-blue-bg {
  background-color: #208ffb;
  padding: var(--jp-private-code-span-padding) 0;
}

.jp-RenderedText pre .ansi-magenta-bg {
  background-color: #d160c4;
  padding: var(--jp-private-code-span-padding) 0;
}

.jp-RenderedText pre .ansi-cyan-bg {
  background-color: #60c6c8;
  padding: var(--jp-private-code-span-padding) 0;
}

.jp-RenderedText pre .ansi-white-bg {
  background-color: #c5c1b4;
  padding: var(--jp-private-code-span-padding) 0;
}

.jp-RenderedText pre .ansi-black-intense-fg {
  color: #282c36;
}

.jp-RenderedText pre .ansi-red-intense-fg {
  color: #b22b31;
}

.jp-RenderedText pre .ansi-green-intense-fg {
  color: #007427;
}

.jp-RenderedText pre .ansi-yellow-intense-fg {
  color: #b27d12;
}

.jp-RenderedText pre .ansi-blue-intense-fg {
  color: #0065ca;
}

.jp-RenderedText pre .ansi-magenta-intense-fg {
  color: #a03196;
}

.jp-RenderedText pre .ansi-cyan-intense-fg {
  color: #258f8f;
}

.jp-RenderedText pre .ansi-white-intense-fg {
  color: #a1a6b2;
}

.jp-RenderedText pre .ansi-black-intense-bg {
  background-color: #282c36;
  padding: var(--jp-private-code-span-padding) 0;
}

.jp-RenderedText pre .ansi-red-intense-bg {
  background-color: #b22b31;
  padding: var(--jp-private-code-span-padding) 0;
}

.jp-RenderedText pre .ansi-green-intense-bg {
  background-color: #007427;
  padding: var(--jp-private-code-span-padding) 0;
}

.jp-RenderedText pre .ansi-yellow-intense-bg {
  background-color: #b27d12;
  padding: var(--jp-private-code-span-padding) 0;
}

.jp-RenderedText pre .ansi-blue-intense-bg {
  background-color: #0065ca;
  padding: var(--jp-private-code-span-padding) 0;
}

.jp-RenderedText pre .ansi-magenta-intense-bg {
  background-color: #a03196;
  padding: var(--jp-private-code-span-padding) 0;
}

.jp-RenderedText pre .ansi-cyan-intense-bg {
  background-color: #258f8f;
  padding: var(--jp-private-code-span-padding) 0;
}

.jp-RenderedText pre .ansi-white-intense-bg {
  background-color: #a1a6b2;
  padding: var(--jp-private-code-span-padding) 0;
}

.jp-RenderedText pre .ansi-default-inverse-fg {
  color: var(--jp-ui-inverse-font-color0);
}

.jp-RenderedText pre .ansi-default-inverse-bg {
  background-color: var(--jp-inverse-layout-color0);
  padding: var(--jp-private-code-span-padding) 0;
}

.jp-RenderedText pre .ansi-bold {
  font-weight: bold;
}

.jp-RenderedText pre .ansi-underline {
  text-decoration: underline;
}

.jp-RenderedText[data-mime-type=&#39;application/vnd.jupyter.stderr&#39;] {
  background: var(--jp-rendermime-error-background);
  padding-top: var(--jp-code-padding);
}

/*-----------------------------------------------------------------------------
| RenderedLatex
|----------------------------------------------------------------------------*/

.jp-RenderedLatex {
  color: var(--jp-content-font-color1);
  font-size: var(--jp-content-font-size1);
  line-height: var(--jp-content-line-height);
}

/* Left-justify outputs.*/
.jp-OutputArea-output.jp-RenderedLatex {
  padding: var(--jp-code-padding);
  text-align: left;
}

/*-----------------------------------------------------------------------------
| RenderedHTML
|----------------------------------------------------------------------------*/

.jp-RenderedHTMLCommon {
  color: var(--jp-content-font-color1);
  font-family: var(--jp-content-font-family);
  font-size: var(--jp-content-font-size1);
  line-height: var(--jp-content-line-height);

  /* Give a bit more R padding on Markdown text to keep line lengths reasonable */
  padding-right: 20px;
}

.jp-RenderedHTMLCommon em {
  font-style: italic;
}

.jp-RenderedHTMLCommon strong {
  font-weight: bold;
}

.jp-RenderedHTMLCommon u {
  text-decoration: underline;
}

.jp-RenderedHTMLCommon a:link {
  text-decoration: none;
  color: var(--jp-content-link-color);
}

.jp-RenderedHTMLCommon a:hover {
  text-decoration: underline;
  color: var(--jp-content-link-color);
}

.jp-RenderedHTMLCommon a:visited {
  text-decoration: none;
  color: var(--jp-content-link-color);
}

/* Headings */

.jp-RenderedHTMLCommon h1,
.jp-RenderedHTMLCommon h2,
.jp-RenderedHTMLCommon h3,
.jp-RenderedHTMLCommon h4,
.jp-RenderedHTMLCommon h5,
.jp-RenderedHTMLCommon h6 {
  line-height: var(--jp-content-heading-line-height);
  font-weight: var(--jp-content-heading-font-weight);
  font-style: normal;
  margin: var(--jp-content-heading-margin-top) 0
    var(--jp-content-heading-margin-bottom) 0;
}

.jp-RenderedHTMLCommon h1:first-child,
.jp-RenderedHTMLCommon h2:first-child,
.jp-RenderedHTMLCommon h3:first-child,
.jp-RenderedHTMLCommon h4:first-child,
.jp-RenderedHTMLCommon h5:first-child,
.jp-RenderedHTMLCommon h6:first-child {
  margin-top: calc(0.5 * var(--jp-content-heading-margin-top));
}

.jp-RenderedHTMLCommon h1:last-child,
.jp-RenderedHTMLCommon h2:last-child,
.jp-RenderedHTMLCommon h3:last-child,
.jp-RenderedHTMLCommon h4:last-child,
.jp-RenderedHTMLCommon h5:last-child,
.jp-RenderedHTMLCommon h6:last-child {
  margin-bottom: calc(0.5 * var(--jp-content-heading-margin-bottom));
}

.jp-RenderedHTMLCommon h1 {
  font-size: var(--jp-content-font-size5);
}

.jp-RenderedHTMLCommon h2 {
  font-size: var(--jp-content-font-size4);
}

.jp-RenderedHTMLCommon h3 {
  font-size: var(--jp-content-font-size3);
}

.jp-RenderedHTMLCommon h4 {
  font-size: var(--jp-content-font-size2);
}

.jp-RenderedHTMLCommon h5 {
  font-size: var(--jp-content-font-size1);
}

.jp-RenderedHTMLCommon h6 {
  font-size: var(--jp-content-font-size0);
}

/* Lists */

/* stylelint-disable selector-max-type, selector-max-compound-selectors */

.jp-RenderedHTMLCommon ul:not(.list-inline),
.jp-RenderedHTMLCommon ol:not(.list-inline) {
  padding-left: 2em;
}

.jp-RenderedHTMLCommon ul {
  list-style: disc;
}

.jp-RenderedHTMLCommon ul ul {
  list-style: square;
}

.jp-RenderedHTMLCommon ul ul ul {
  list-style: circle;
}

.jp-RenderedHTMLCommon ol {
  list-style: decimal;
}

.jp-RenderedHTMLCommon ol ol {
  list-style: upper-alpha;
}

.jp-RenderedHTMLCommon ol ol ol {
  list-style: lower-alpha;
}

.jp-RenderedHTMLCommon ol ol ol ol {
  list-style: lower-roman;
}

.jp-RenderedHTMLCommon ol ol ol ol ol {
  list-style: decimal;
}

.jp-RenderedHTMLCommon ol,
.jp-RenderedHTMLCommon ul {
  margin-bottom: 1em;
}

.jp-RenderedHTMLCommon ul ul,
.jp-RenderedHTMLCommon ul ol,
.jp-RenderedHTMLCommon ol ul,
.jp-RenderedHTMLCommon ol ol {
  margin-bottom: 0;
}

/* stylelint-enable selector-max-type, selector-max-compound-selectors */

.jp-RenderedHTMLCommon hr {
  color: var(--jp-border-color2);
  background-color: var(--jp-border-color1);
  margin-top: 1em;
  margin-bottom: 1em;
}

.jp-RenderedHTMLCommon &gt; pre {
  margin: 1.5em 2em;
}

.jp-RenderedHTMLCommon pre,
.jp-RenderedHTMLCommon code {
  border: 0;
  background-color: var(--jp-layout-color0);
  color: var(--jp-content-font-color1);
  font-family: var(--jp-code-font-family);
  font-size: inherit;
  line-height: var(--jp-code-line-height);
  padding: 0;
  white-space: pre-wrap;
}

.jp-RenderedHTMLCommon :not(pre) &gt; code {
  background-color: var(--jp-layout-color2);
  padding: 1px 5px;
}

/* Tables */

.jp-RenderedHTMLCommon table {
  border-collapse: collapse;
  border-spacing: 0;
  border: none;
  color: var(--jp-ui-font-color1);
  font-size: var(--jp-ui-font-size1);
  table-layout: fixed;
  margin-left: auto;
  margin-bottom: 1em;
  margin-right: auto;
}

.jp-RenderedHTMLCommon thead {
  border-bottom: var(--jp-border-width) solid var(--jp-border-color1);
  vertical-align: bottom;
}

.jp-RenderedHTMLCommon td,
.jp-RenderedHTMLCommon th,
.jp-RenderedHTMLCommon tr {
  vertical-align: middle;
  padding: 0.5em;
  line-height: normal;
  white-space: normal;
  max-width: none;
  border: none;
}

.jp-RenderedMarkdown.jp-RenderedHTMLCommon td,
.jp-RenderedMarkdown.jp-RenderedHTMLCommon th {
  max-width: none;
}

:not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon td,
:not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon th,
:not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon tr {
  text-align: right;
}

.jp-RenderedHTMLCommon th {
  font-weight: bold;
}

.jp-RenderedHTMLCommon tbody tr:nth-child(odd) {
  background: var(--jp-layout-color0);
}

.jp-RenderedHTMLCommon tbody tr:nth-child(even) {
  background: var(--jp-rendermime-table-row-background);
}

.jp-RenderedHTMLCommon tbody tr:hover {
  background: var(--jp-rendermime-table-row-hover-background);
}

.jp-RenderedHTMLCommon p {
  text-align: left;
  margin: 0;
  margin-bottom: 1em;
}

.jp-RenderedHTMLCommon img {
  -moz-force-broken-image-icon: 1;
}

/* Restrict to direct children as other images could be nested in other content. */
.jp-RenderedHTMLCommon &gt; img {
  display: block;
  margin-left: 0;
  margin-right: 0;
  margin-bottom: 1em;
}

/* Change color behind transparent images if they need it... */
[data-jp-theme-light=&#39;false&#39;] .jp-RenderedImage img.jp-needs-light-background {
  background-color: var(--jp-inverse-layout-color1);
}

[data-jp-theme-light=&#39;true&#39;] .jp-RenderedImage img.jp-needs-dark-background {
  background-color: var(--jp-inverse-layout-color1);
}

.jp-RenderedHTMLCommon img,
.jp-RenderedImage img,
.jp-RenderedHTMLCommon svg,
.jp-RenderedSVG svg {
  max-width: 100%;
  height: auto;
}

.jp-RenderedHTMLCommon img.jp-mod-unconfined,
.jp-RenderedImage img.jp-mod-unconfined,
.jp-RenderedHTMLCommon svg.jp-mod-unconfined,
.jp-RenderedSVG svg.jp-mod-unconfined {
  max-width: none;
}

.jp-RenderedHTMLCommon .alert {
  padding: var(--jp-notebook-padding);
  border: var(--jp-border-width) solid transparent;
  border-radius: var(--jp-border-radius);
  margin-bottom: 1em;
}

.jp-RenderedHTMLCommon .alert-info {
  color: var(--jp-info-color0);
  background-color: var(--jp-info-color3);
  border-color: var(--jp-info-color2);
}

.jp-RenderedHTMLCommon .alert-info hr {
  border-color: var(--jp-info-color3);
}

.jp-RenderedHTMLCommon .alert-info &gt; p:last-child,
.jp-RenderedHTMLCommon .alert-info &gt; ul:last-child {
  margin-bottom: 0;
}

.jp-RenderedHTMLCommon .alert-warning {
  color: var(--jp-warn-color0);
  background-color: var(--jp-warn-color3);
  border-color: var(--jp-warn-color2);
}

.jp-RenderedHTMLCommon .alert-warning hr {
  border-color: var(--jp-warn-color3);
}

.jp-RenderedHTMLCommon .alert-warning &gt; p:last-child,
.jp-RenderedHTMLCommon .alert-warning &gt; ul:last-child {
  margin-bottom: 0;
}

.jp-RenderedHTMLCommon .alert-success {
  color: var(--jp-success-color0);
  background-color: var(--jp-success-color3);
  border-color: var(--jp-success-color2);
}

.jp-RenderedHTMLCommon .alert-success hr {
  border-color: var(--jp-success-color3);
}

.jp-RenderedHTMLCommon .alert-success &gt; p:last-child,
.jp-RenderedHTMLCommon .alert-success &gt; ul:last-child {
  margin-bottom: 0;
}

.jp-RenderedHTMLCommon .alert-danger {
  color: var(--jp-error-color0);
  background-color: var(--jp-error-color3);
  border-color: var(--jp-error-color2);
}

.jp-RenderedHTMLCommon .alert-danger hr {
  border-color: var(--jp-error-color3);
}

.jp-RenderedHTMLCommon .alert-danger &gt; p:last-child,
.jp-RenderedHTMLCommon .alert-danger &gt; ul:last-child {
  margin-bottom: 0;
}

.jp-RenderedHTMLCommon blockquote {
  margin: 1em 2em;
  padding: 0 1em;
  border-left: 5px solid var(--jp-border-color2);
}

a.jp-InternalAnchorLink {
  visibility: hidden;
  margin-left: 8px;
  color: var(--md-blue-800);
}

h1:hover .jp-InternalAnchorLink,
h2:hover .jp-InternalAnchorLink,
h3:hover .jp-InternalAnchorLink,
h4:hover .jp-InternalAnchorLink,
h5:hover .jp-InternalAnchorLink,
h6:hover .jp-InternalAnchorLink {
  visibility: visible;
}

.jp-RenderedHTMLCommon kbd {
  background-color: var(--jp-rendermime-table-row-background);
  border: 1px solid var(--jp-border-color0);
  border-bottom-color: var(--jp-border-color2);
  border-radius: 3px;
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
  display: inline-block;
  font-size: var(--jp-ui-font-size0);
  line-height: 1em;
  padding: 0.2em 0.5em;
}

/* Most direct children of .jp-RenderedHTMLCommon have a margin-bottom of 1.0.
 * At the bottom of cells this is a bit too much as there is also spacing
 * between cells. Going all the way to 0 gets too tight between markdown and
 * code cells.
 */
.jp-RenderedHTMLCommon &gt; *:last-child {
  margin-bottom: 0.5em;
}

/*
 * Copyright (c) Jupyter Development Team.
 * Distributed under the terms of the Modified BSD License.
 */

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/

.lm-cursor-backdrop {
  position: fixed;
  width: 200px;
  height: 200px;
  margin-top: -100px;
  margin-left: -100px;
  will-change: transform;
  z-index: 100;
}

.lm-mod-drag-image {
  will-change: transform;
}

/*
 * Copyright (c) Jupyter Development Team.
 * Distributed under the terms of the Modified BSD License.
 */

.jp-lineFormSearch {
  padding: 4px 12px;
  background-color: var(--jp-layout-color2);
  box-shadow: var(--jp-toolbar-box-shadow);
  z-index: 2;
  font-size: var(--jp-ui-font-size1);
}

.jp-lineFormCaption {
  font-size: var(--jp-ui-font-size0);
  line-height: var(--jp-ui-font-size1);
  margin-top: 4px;
  color: var(--jp-ui-font-color0);
}

.jp-baseLineForm {
  border: none;
  border-radius: 0;
  position: absolute;
  background-size: 16px;
  background-repeat: no-repeat;
  background-position: center;
  outline: none;
}

.jp-lineFormButtonContainer {
  top: 4px;
  right: 8px;
  height: 24px;
  padding: 0 12px;
  width: 12px;
}

.jp-lineFormButtonIcon {
  top: 0;
  right: 0;
  background-color: var(--jp-brand-color1);
  height: 100%;
  width: 100%;
  box-sizing: border-box;
  padding: 4px 6px;
}

.jp-lineFormButton {
  top: 0;
  right: 0;
  background-color: transparent;
  height: 100%;
  width: 100%;
  box-sizing: border-box;
}

.jp-lineFormWrapper {
  overflow: hidden;
  padding: 0 8px;
  border: 1px solid var(--jp-border-color0);
  background-color: var(--jp-input-active-background);
  height: 22px;
}

.jp-lineFormWrapperFocusWithin {
  border: var(--jp-border-width) solid var(--md-blue-500);
  box-shadow: inset 0 0 4px var(--md-blue-300);
}

.jp-lineFormInput {
  background: transparent;
  width: 200px;
  height: 100%;
  border: none;
  outline: none;
  color: var(--jp-ui-font-color0);
  line-height: 28px;
}

/*-----------------------------------------------------------------------------
| Copyright (c) 2014-2016, Jupyter Development Team.
|
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

.jp-JSONEditor {
  display: flex;
  flex-direction: column;
  width: 100%;
}

.jp-JSONEditor-host {
  flex: 1 1 auto;
  border: var(--jp-border-width) solid var(--jp-input-border-color);
  border-radius: 0;
  background: var(--jp-layout-color0);
  min-height: 50px;
  padding: 1px;
}

.jp-JSONEditor.jp-mod-error .jp-JSONEditor-host {
  border-color: red;
  outline-color: red;
}

.jp-JSONEditor-header {
  display: flex;
  flex: 1 0 auto;
  padding: 0 0 0 12px;
}

.jp-JSONEditor-header label {
  flex: 0 0 auto;
}

.jp-JSONEditor-commitButton {
  height: 16px;
  width: 16px;
  background-size: 18px;
  background-repeat: no-repeat;
  background-position: center;
}

.jp-JSONEditor-host.jp-mod-focused {
  background-color: var(--jp-input-active-background);
  border: 1px solid var(--jp-input-active-border-color);
  box-shadow: var(--jp-input-box-shadow);
}

.jp-Editor.jp-mod-dropTarget {
  border: var(--jp-border-width) solid var(--jp-input-active-border-color);
  box-shadow: var(--jp-input-box-shadow);
}

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/
.jp-DocumentSearch-input {
  border: none;
  outline: none;
  color: var(--jp-ui-font-color0);
  font-size: var(--jp-ui-font-size1);
  background-color: var(--jp-layout-color0);
  font-family: var(--jp-ui-font-family);
  padding: 2px 1px;
  resize: none;
}

.jp-DocumentSearch-overlay {
  position: absolute;
  background-color: var(--jp-toolbar-background);
  border-bottom: var(--jp-border-width) solid var(--jp-toolbar-border-color);
  border-left: var(--jp-border-width) solid var(--jp-toolbar-border-color);
  top: 0;
  right: 0;
  z-index: 7;
  min-width: 405px;
  padding: 2px;
  font-size: var(--jp-ui-font-size1);

  --jp-private-document-search-button-height: 20px;
}

.jp-DocumentSearch-overlay button {
  background-color: var(--jp-toolbar-background);
  outline: 0;
}

.jp-DocumentSearch-overlay button:hover {
  background-color: var(--jp-layout-color2);
}

.jp-DocumentSearch-overlay button:active {
  background-color: var(--jp-layout-color3);
}

.jp-DocumentSearch-overlay-row {
  display: flex;
  align-items: center;
  margin-bottom: 2px;
}

.jp-DocumentSearch-button-content {
  display: inline-block;
  cursor: pointer;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
}

.jp-DocumentSearch-button-content svg {
  width: 100%;
  height: 100%;
}

.jp-DocumentSearch-input-wrapper {
  border: var(--jp-border-width) solid var(--jp-border-color0);
  display: flex;
  background-color: var(--jp-layout-color0);
  margin: 2px;
}

.jp-DocumentSearch-input-wrapper:focus-within {
  border-color: var(--jp-cell-editor-active-border-color);
}

.jp-DocumentSearch-toggle-wrapper,
.jp-DocumentSearch-button-wrapper {
  all: initial;
  overflow: hidden;
  display: inline-block;
  border: none;
  box-sizing: border-box;
}

.jp-DocumentSearch-toggle-wrapper {
  width: 14px;
  height: 14px;
}

.jp-DocumentSearch-button-wrapper {
  width: var(--jp-private-document-search-button-height);
  height: var(--jp-private-document-search-button-height);
}

.jp-DocumentSearch-toggle-wrapper:focus,
.jp-DocumentSearch-button-wrapper:focus {
  outline: var(--jp-border-width) solid
    var(--jp-cell-editor-active-border-color);
  outline-offset: -1px;
}

.jp-DocumentSearch-toggle-wrapper,
.jp-DocumentSearch-button-wrapper,
.jp-DocumentSearch-button-content:focus {
  outline: none;
}

.jp-DocumentSearch-toggle-placeholder {
  width: 5px;
}

.jp-DocumentSearch-input-button::before {
  display: block;
  padding-top: 100%;
}

.jp-DocumentSearch-input-button-off {
  opacity: var(--jp-search-toggle-off-opacity);
}

.jp-DocumentSearch-input-button-off:hover {
  opacity: var(--jp-search-toggle-hover-opacity);
}

.jp-DocumentSearch-input-button-on {
  opacity: var(--jp-search-toggle-on-opacity);
}

.jp-DocumentSearch-index-counter {
  padding-left: 10px;
  padding-right: 10px;
  user-select: none;
  min-width: 35px;
  display: inline-block;
}

.jp-DocumentSearch-up-down-wrapper {
  display: inline-block;
  padding-right: 2px;
  margin-left: auto;
  white-space: nowrap;
}

.jp-DocumentSearch-spacer {
  margin-left: auto;
}

.jp-DocumentSearch-up-down-wrapper button {
  outline: 0;
  border: none;
  width: var(--jp-private-document-search-button-height);
  height: var(--jp-private-document-search-button-height);
  vertical-align: middle;
  margin: 1px 5px 2px;
}

.jp-DocumentSearch-up-down-button:hover {
  background-color: var(--jp-layout-color2);
}

.jp-DocumentSearch-up-down-button:active {
  background-color: var(--jp-layout-color3);
}

.jp-DocumentSearch-filter-button {
  border-radius: var(--jp-border-radius);
}

.jp-DocumentSearch-filter-button:hover {
  background-color: var(--jp-layout-color2);
}

.jp-DocumentSearch-filter-button-enabled {
  background-color: var(--jp-layout-color2);
}

.jp-DocumentSearch-filter-button-enabled:hover {
  background-color: var(--jp-layout-color3);
}

.jp-DocumentSearch-search-options {
  padding: 0 8px;
  margin-left: 3px;
  width: 100%;
  display: grid;
  justify-content: start;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  justify-items: stretch;
}

.jp-DocumentSearch-search-filter-disabled {
  color: var(--jp-ui-font-color2);
}

.jp-DocumentSearch-search-filter {
  display: flex;
  align-items: center;
  user-select: none;
}

.jp-DocumentSearch-regex-error {
  color: var(--jp-error-color0);
}

.jp-DocumentSearch-replace-button-wrapper {
  overflow: hidden;
  display: inline-block;
  box-sizing: border-box;
  border: var(--jp-border-width) solid var(--jp-border-color0);
  margin: auto 2px;
  padding: 1px 4px;
  height: calc(var(--jp-private-document-search-button-height) + 2px);
}

.jp-DocumentSearch-replace-button-wrapper:focus {
  border: var(--jp-border-width) solid var(--jp-cell-editor-active-border-color);
}

.jp-DocumentSearch-replace-button {
  display: inline-block;
  text-align: center;
  cursor: pointer;
  box-sizing: border-box;
  color: var(--jp-ui-font-color1);

  /* height - 2 * (padding of wrapper) */
  line-height: calc(var(--jp-private-document-search-button-height) - 2px);
  width: 100%;
  height: 100%;
}

.jp-DocumentSearch-replace-button:focus {
  outline: none;
}

.jp-DocumentSearch-replace-wrapper-class {
  margin-left: 14px;
  display: flex;
}

.jp-DocumentSearch-replace-toggle {
  border: none;
  background-color: var(--jp-toolbar-background);
  border-radius: var(--jp-border-radius);
}

.jp-DocumentSearch-replace-toggle:hover {
  background-color: var(--jp-layout-color2);
}

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

.cm-editor {
  line-height: var(--jp-code-line-height);
  font-size: var(--jp-code-font-size);
  font-family: var(--jp-code-font-family);
  border: 0;
  border-radius: 0;
  height: auto;

  /* Changed to auto to autogrow */
}

.cm-editor pre {
  padding: 0 var(--jp-code-padding);
}

.jp-CodeMirrorEditor[data-type=&#39;inline&#39;] .cm-dialog {
  background-color: var(--jp-layout-color0);
  color: var(--jp-content-font-color1);
}

.jp-CodeMirrorEditor {
  cursor: text;
}

/* When zoomed out 67% and 33% on a screen of 1440 width x 900 height */
@media screen and (min-width: 2138px) and (max-width: 4319px) {
  .jp-CodeMirrorEditor[data-type=&#39;inline&#39;] .cm-cursor {
    border-left: var(--jp-code-cursor-width1) solid
      var(--jp-editor-cursor-color);
  }
}

/* When zoomed out less than 33% */
@media screen and (min-width: 4320px) {
  .jp-CodeMirrorEditor[data-type=&#39;inline&#39;] .cm-cursor {
    border-left: var(--jp-code-cursor-width2) solid
      var(--jp-editor-cursor-color);
  }
}

.cm-editor.jp-mod-readOnly .cm-cursor {
  display: none;
}

.jp-CollaboratorCursor {
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: none;
  border-bottom: 3px solid;
  background-clip: content-box;
  margin-left: -5px;
  margin-right: -5px;
}

.cm-searching,
.cm-searching span {
  /* `.cm-searching span`: we need to override syntax highlighting */
  background-color: var(--jp-search-unselected-match-background-color);
  color: var(--jp-search-unselected-match-color);
}

.cm-searching::selection,
.cm-searching span::selection {
  background-color: var(--jp-search-unselected-match-background-color);
  color: var(--jp-search-unselected-match-color);
}

.jp-current-match &gt; .cm-searching,
.jp-current-match &gt; .cm-searching span,
.cm-searching &gt; .jp-current-match,
.cm-searching &gt; .jp-current-match span {
  background-color: var(--jp-search-selected-match-background-color);
  color: var(--jp-search-selected-match-color);
}

.jp-current-match &gt; .cm-searching::selection,
.cm-searching &gt; .jp-current-match::selection,
.jp-current-match &gt; .cm-searching span::selection {
  background-color: var(--jp-search-selected-match-background-color);
  color: var(--jp-search-selected-match-color);
}

.cm-trailingspace {
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAsElEQVQIHQGlAFr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7+r3zKmT0/+pk9P/7+r3zAAAAAAAAAAABAAAAAAAAAAA6OPzM+/q9wAAAAAA6OPzMwAAAAAAAAAAAgAAAAAAAAAAGR8NiRQaCgAZIA0AGR8NiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQyoYJ/SY80UAAAAASUVORK5CYII=);
  background-position: center left;
  background-repeat: repeat-x;
}

.jp-CollaboratorCursor-hover {
  position: absolute;
  z-index: 1;
  transform: translateX(-50%);
  color: white;
  border-radius: 3px;
  padding-left: 4px;
  padding-right: 4px;
  padding-top: 1px;
  padding-bottom: 1px;
  text-align: center;
  font-size: var(--jp-ui-font-size1);
  white-space: nowrap;
}

.jp-CodeMirror-ruler {
  border-left: 1px dashed var(--jp-border-color2);
}

/* Styles for shared cursors (remote cursor locations and selected ranges) */
.jp-CodeMirrorEditor .cm-ySelectionCaret {
  position: relative;
  border-left: 1px solid black;
  margin-left: -1px;
  margin-right: -1px;
  box-sizing: border-box;
}

.jp-CodeMirrorEditor .cm-ySelectionCaret &gt; .cm-ySelectionInfo {
  white-space: nowrap;
  position: absolute;
  top: -1.15em;
  padding-bottom: 0.05em;
  left: -1px;
  font-size: 0.95em;
  font-family: var(--jp-ui-font-family);
  font-weight: bold;
  line-height: normal;
  user-select: none;
  color: white;
  padding-left: 2px;
  padding-right: 2px;
  z-index: 101;
  transition: opacity 0.3s ease-in-out;
}

.jp-CodeMirrorEditor .cm-ySelectionInfo {
  transition-delay: 0.7s;
  opacity: 0;
}

.jp-CodeMirrorEditor .cm-ySelectionCaret:hover &gt; .cm-ySelectionInfo {
  opacity: 1;
  transition-delay: 0s;
}

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

.jp-MimeDocument {
  outline: none;
}

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

/*-----------------------------------------------------------------------------
| Variables
|----------------------------------------------------------------------------*/

:root {
  --jp-private-filebrowser-button-height: 28px;
  --jp-private-filebrowser-button-width: 48px;
}

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

.jp-FileBrowser .jp-SidePanel-content {
  display: flex;
  flex-direction: column;
}

.jp-FileBrowser-toolbar.jp-Toolbar {
  flex-wrap: wrap;
  row-gap: 12px;
  border-bottom: none;
  height: auto;
  margin: 8px 12px 0;
  box-shadow: none;
  padding: 0;
  justify-content: flex-start;
}

.jp-FileBrowser-Panel {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
}

.jp-BreadCrumbs {
  flex: 0 0 auto;
  margin: 8px 12px;
}

.jp-BreadCrumbs-item {
  margin: 0 2px;
  padding: 0 2px;
  border-radius: var(--jp-border-radius);
  cursor: pointer;
}

.jp-BreadCrumbs-item:hover {
  background-color: var(--jp-layout-color2);
}

.jp-BreadCrumbs-item:first-child {
  margin-left: 0;
}

.jp-BreadCrumbs-item.jp-mod-dropTarget {
  background-color: var(--jp-brand-color2);
  opacity: 0.7;
}

/*-----------------------------------------------------------------------------
| Buttons
|----------------------------------------------------------------------------*/

.jp-FileBrowser-toolbar &gt; .jp-Toolbar-item {
  flex: 0 0 auto;
  padding-left: 0;
  padding-right: 2px;
  align-items: center;
  height: unset;
}

.jp-FileBrowser-toolbar &gt; .jp-Toolbar-item .jp-ToolbarButtonComponent {
  width: 40px;
}

/*-----------------------------------------------------------------------------
| Other styles
|----------------------------------------------------------------------------*/

.jp-FileDialog.jp-mod-conflict input {
  color: var(--jp-error-color1);
}

.jp-FileDialog .jp-new-name-title {
  margin-top: 12px;
}

.jp-LastModified-hidden {
  display: none;
}

.jp-FileSize-hidden {
  display: none;
}

.jp-FileBrowser .lm-AccordionPanel &gt; h3:first-child {
  display: none;
}

/*-----------------------------------------------------------------------------
| DirListing
|----------------------------------------------------------------------------*/

.jp-DirListing {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  outline: 0;
}

.jp-DirListing-header {
  flex: 0 0 auto;
  display: flex;
  flex-direction: row;
  align-items: center;
  overflow: hidden;
  border-top: var(--jp-border-width) solid var(--jp-border-color2);
  border-bottom: var(--jp-border-width) solid var(--jp-border-color1);
  box-shadow: var(--jp-toolbar-box-shadow);
  z-index: 2;
}

.jp-DirListing-headerItem {
  padding: 4px 12px 2px;
  font-weight: 500;
}

.jp-DirListing-headerItem:hover {
  background: var(--jp-layout-color2);
}

.jp-DirListing-headerItem.jp-id-name {
  flex: 1 0 84px;
}

.jp-DirListing-headerItem.jp-id-modified {
  flex: 0 0 112px;
  border-left: var(--jp-border-width) solid var(--jp-border-color2);
  text-align: right;
}

.jp-DirListing-headerItem.jp-id-filesize {
  flex: 0 0 75px;
  border-left: var(--jp-border-width) solid var(--jp-border-color2);
  text-align: right;
}

.jp-id-narrow {
  display: none;
  flex: 0 0 5px;
  padding: 4px;
  border-left: var(--jp-border-width) solid var(--jp-border-color2);
  text-align: right;
  color: var(--jp-border-color2);
}

.jp-DirListing-narrow .jp-id-narrow {
  display: block;
}

.jp-DirListing-narrow .jp-id-modified,
.jp-DirListing-narrow .jp-DirListing-itemModified {
  display: none;
}

.jp-DirListing-headerItem.jp-mod-selected {
  font-weight: 600;
}

/* increase specificity to override bundled default */
.jp-DirListing-content {
  flex: 1 1 auto;
  margin: 0;
  padding: 0;
  list-style-type: none;
  overflow: auto;
  background-color: var(--jp-layout-color1);
}

.jp-DirListing-content mark {
  color: var(--jp-ui-font-color0);
  background-color: transparent;
  font-weight: bold;
}

.jp-DirListing-content .jp-DirListing-item.jp-mod-selected mark {
  color: var(--jp-ui-inverse-font-color0);
}

/* Style the directory listing content when a user drops a file to upload */
.jp-DirListing.jp-mod-native-drop .jp-DirListing-content {
  outline: 5px dashed rgba(128, 128, 128, 0.5);
  outline-offset: -10px;
  cursor: copy;
}

.jp-DirListing-item {
  display: flex;
  flex-direction: row;
  align-items: center;
  padding: 4px 12px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.jp-DirListing-checkboxWrapper {
  /* Increases hit area of checkbox. */
  padding: 4px;
}

.jp-DirListing-header
  .jp-DirListing-checkboxWrapper
  + .jp-DirListing-headerItem {
  padding-left: 4px;
}

.jp-DirListing-content .jp-DirListing-checkboxWrapper {
  position: relative;
  left: -4px;
  margin: -4px 0 -4px -8px;
}

.jp-DirListing-checkboxWrapper.jp-mod-visible {
  visibility: visible;
}

/* For devices that support hovering, hide checkboxes until hovered, selected...
*/
@media (hover: hover) {
  .jp-DirListing-checkboxWrapper {
    visibility: hidden;
  }

  .jp-DirListing-item:hover .jp-DirListing-checkboxWrapper,
  .jp-DirListing-item.jp-mod-selected .jp-DirListing-checkboxWrapper {
    visibility: visible;
  }
}

.jp-DirListing-item[data-is-dot] {
  opacity: 75%;
}

.jp-DirListing-item.jp-mod-selected {
  color: var(--jp-ui-inverse-font-color1);
  background: var(--jp-brand-color1);
}

.jp-DirListing-item.jp-mod-dropTarget {
  background: var(--jp-brand-color3);
}

.jp-DirListing-item:hover:not(.jp-mod-selected) {
  background: var(--jp-layout-color2);
}

.jp-DirListing-itemIcon {
  flex: 0 0 20px;
  margin-right: 4px;
}

.jp-DirListing-itemText {
  flex: 1 0 64px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  user-select: none;
}

.jp-DirListing-itemText:focus {
  outline-width: 2px;
  outline-color: var(--jp-inverse-layout-color1);
  outline-style: solid;
  outline-offset: 1px;
}

.jp-DirListing-item.jp-mod-selected .jp-DirListing-itemText:focus {
  outline-color: var(--jp-layout-color1);
}

.jp-DirListing-itemModified {
  flex: 0 0 125px;
  text-align: right;
}

.jp-DirListing-itemFileSize {
  flex: 0 0 90px;
  text-align: right;
}

.jp-DirListing-editor {
  flex: 1 0 64px;
  outline: none;
  border: none;
  color: var(--jp-ui-font-color1);
  background-color: var(--jp-layout-color1);
}

.jp-DirListing-item.jp-mod-running .jp-DirListing-itemIcon::before {
  color: var(--jp-success-color1);
  content: &#39;\25CF&#39;;
  font-size: 8px;
  position: absolute;
  left: -8px;
}

.jp-DirListing-item.jp-mod-running.jp-mod-selected
  .jp-DirListing-itemIcon::before {
  color: var(--jp-ui-inverse-font-color1);
}

.jp-DirListing-item.lm-mod-drag-image,
.jp-DirListing-item.jp-mod-selected.lm-mod-drag-image {
  font-size: var(--jp-ui-font-size1);
  padding-left: 4px;
  margin-left: 4px;
  width: 160px;
  background-color: var(--jp-ui-inverse-font-color2);
  box-shadow: var(--jp-elevation-z2);
  border-radius: 0;
  color: var(--jp-ui-font-color1);
  transform: translateX(-40%) translateY(-58%);
}

.jp-Document {
  min-width: 120px;
  min-height: 120px;
  outline: none;
}

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

/*-----------------------------------------------------------------------------
| Main OutputArea
| OutputArea has a list of Outputs
|----------------------------------------------------------------------------*/

.jp-OutputArea {
  overflow-y: auto;
}

.jp-OutputArea-child {
  display: table;
  table-layout: fixed;
  width: 100%;
  overflow: hidden;
}

.jp-OutputPrompt {
  width: var(--jp-cell-prompt-width);
  color: var(--jp-cell-outprompt-font-color);
  font-family: var(--jp-cell-prompt-font-family);
  padding: var(--jp-code-padding);
  letter-spacing: var(--jp-cell-prompt-letter-spacing);
  line-height: var(--jp-code-line-height);
  font-size: var(--jp-code-font-size);
  border: var(--jp-border-width) solid transparent;
  opacity: var(--jp-cell-prompt-opacity);

  /* Right align prompt text, don&#39;t wrap to handle large prompt numbers */
  text-align: right;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;

  /* Disable text selection */
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.jp-OutputArea-prompt {
  display: table-cell;
  vertical-align: top;
}

.jp-OutputArea-output {
  display: table-cell;
  width: 100%;
  height: auto;
  overflow: auto;
  user-select: text;
  -moz-user-select: text;
  -webkit-user-select: text;
  -ms-user-select: text;
}

.jp-OutputArea .jp-RenderedText {
  padding-left: 1ch;
}

/**
 * Prompt overlay.
 */

.jp-OutputArea-promptOverlay {
  position: absolute;
  top: 0;
  width: var(--jp-cell-prompt-width);
  height: 100%;
  opacity: 0.5;
}

.jp-OutputArea-promptOverlay:hover {
  background: var(--jp-layout-color2);
  box-shadow: inset 0 0 1px var(--jp-inverse-layout-color0);
  cursor: zoom-out;
}

.jp-mod-outputsScrolled .jp-OutputArea-promptOverlay:hover {
  cursor: zoom-in;
}

/**
 * Isolated output.
 */
.jp-OutputArea-output.jp-mod-isolated {
  width: 100%;
  display: block;
}

/*
When drag events occur, `lm-mod-override-cursor` is added to the body.
Because iframes steal all cursor events, the following two rules are necessary
to suppress pointer events while resize drags are occurring. There may be a
better solution to this problem.
*/
body.lm-mod-override-cursor .jp-OutputArea-output.jp-mod-isolated {
  position: relative;
}

body.lm-mod-override-cursor .jp-OutputArea-output.jp-mod-isolated::before {
  content: &#39;&#39;;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: transparent;
}

/* pre */

.jp-OutputArea-output pre {
  border: none;
  margin: 0;
  padding: 0;
  overflow-x: auto;
  overflow-y: auto;
  word-break: break-all;
  word-wrap: break-word;
  white-space: pre-wrap;
}

/* tables */

.jp-OutputArea-output.jp-RenderedHTMLCommon table {
  margin-left: 0;
  margin-right: 0;
}

/* description lists */

.jp-OutputArea-output dl,
.jp-OutputArea-output dt,
.jp-OutputArea-output dd {
  display: block;
}

.jp-OutputArea-output dl {
  width: 100%;
  overflow: hidden;
  padding: 0;
  margin: 0;
}

.jp-OutputArea-output dt {
  font-weight: bold;
  float: left;
  width: 20%;
  padding: 0;
  margin: 0;
}

.jp-OutputArea-output dd {
  float: left;
  width: 80%;
  padding: 0;
  margin: 0;
}

.jp-TrimmedOutputs pre {
  background: var(--jp-layout-color3);
  font-size: calc(var(--jp-code-font-size) * 1.4);
  text-align: center;
  text-transform: uppercase;
}

/* Hide the gutter in case of
 *  - nested output areas (e.g. in the case of output widgets)
 *  - mirrored output areas
 */
.jp-OutputArea .jp-OutputArea .jp-OutputArea-prompt {
  display: none;
}

/* Hide empty lines in the output area, for instance due to cleared widgets */
.jp-OutputArea-prompt:empty {
  padding: 0;
  border: 0;
}

/*-----------------------------------------------------------------------------
| executeResult is added to any Output-result for the display of the object
| returned by a cell
|----------------------------------------------------------------------------*/

.jp-OutputArea-output.jp-OutputArea-executeResult {
  margin-left: 0;
  width: 100%;
}

/* Text output with the Out[] prompt needs a top padding to match the
 * alignment of the Out[] prompt itself.
 */
.jp-OutputArea-executeResult .jp-RenderedText.jp-OutputArea-output {
  padding-top: var(--jp-code-padding);
  border-top: var(--jp-border-width) solid transparent;
}

/*-----------------------------------------------------------------------------
| The Stdin output
|----------------------------------------------------------------------------*/

.jp-Stdin-prompt {
  color: var(--jp-content-font-color0);
  padding-right: var(--jp-code-padding);
  vertical-align: baseline;
  flex: 0 0 auto;
}

.jp-Stdin-input {
  font-family: var(--jp-code-font-family);
  font-size: inherit;
  color: inherit;
  background-color: inherit;
  width: 42%;
  min-width: 200px;

  /* make sure input baseline aligns with prompt */
  vertical-align: baseline;

  /* padding + margin = 0.5em between prompt and cursor */
  padding: 0 0.25em;
  margin: 0 0.25em;
  flex: 0 0 70%;
}

.jp-Stdin-input::placeholder {
  opacity: 0;
}

.jp-Stdin-input:focus {
  box-shadow: none;
}

.jp-Stdin-input:focus::placeholder {
  opacity: 1;
}

/*-----------------------------------------------------------------------------
| Output Area View
|----------------------------------------------------------------------------*/

.jp-LinkedOutputView .jp-OutputArea {
  height: 100%;
  display: block;
}

.jp-LinkedOutputView .jp-OutputArea-output:only-child {
  height: 100%;
}

/*-----------------------------------------------------------------------------
| Printing
|----------------------------------------------------------------------------*/

@media print {
  .jp-OutputArea-child {
    break-inside: avoid-page;
  }
}

/*-----------------------------------------------------------------------------
| Mobile
|----------------------------------------------------------------------------*/
@media only screen and (max-width: 760px) {
  .jp-OutputPrompt {
    display: table-row;
    text-align: left;
  }

  .jp-OutputArea-child .jp-OutputArea-output {
    display: table-row;
    margin-left: var(--jp-notebook-padding);
  }
}

/* Trimmed outputs warning */
.jp-TrimmedOutputs &gt; a {
  margin: 10px;
  text-decoration: none;
  cursor: pointer;
}

.jp-TrimmedOutputs &gt; a:hover {
  text-decoration: none;
}

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

/*-----------------------------------------------------------------------------
| Table of Contents
|----------------------------------------------------------------------------*/

:root {
  --jp-private-toc-active-width: 4px;
}

.jp-TableOfContents {
  display: flex;
  flex-direction: column;
  background: var(--jp-layout-color1);
  color: var(--jp-ui-font-color1);
  font-size: var(--jp-ui-font-size1);
  height: 100%;
}

.jp-TableOfContents-placeholder {
  text-align: center;
}

.jp-TableOfContents-placeholderContent {
  color: var(--jp-content-font-color2);
  padding: 8px;
}

.jp-TableOfContents-placeholderContent &gt; h3 {
  margin-bottom: var(--jp-content-heading-margin-bottom);
}

.jp-TableOfContents .jp-SidePanel-content {
  overflow-y: auto;
}

.jp-TableOfContents-tree {
  margin: 4px;
}

.jp-TableOfContents ol {
  list-style-type: none;
}

/* stylelint-disable-next-line selector-max-type */
.jp-TableOfContents li &gt; ol {
  /* Align left border with triangle icon center */
  padding-left: 11px;
}

.jp-TableOfContents-content {
  /* left margin for the active heading indicator */
  margin: 0 0 0 var(--jp-private-toc-active-width);
  padding: 0;
  background-color: var(--jp-layout-color1);
}

.jp-tocItem {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.jp-tocItem-heading {
  display: flex;
  cursor: pointer;
}

.jp-tocItem-heading:hover {
  background-color: var(--jp-layout-color2);
}

.jp-tocItem-content {
  display: block;
  padding: 4px 0;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow-x: hidden;
}

.jp-tocItem-collapser {
  height: 20px;
  margin: 2px 2px 0;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
}

.jp-tocItem-collapser:hover {
  background-color: var(--jp-layout-color3);
}

/* Active heading indicator */

.jp-tocItem-heading::before {
  content: &#39; &#39;;
  background: transparent;
  width: var(--jp-private-toc-active-width);
  height: 24px;
  position: absolute;
  left: 0;
  border-radius: var(--jp-border-radius);
}

.jp-tocItem-heading.jp-tocItem-active::before {
  background-color: var(--jp-brand-color1);
}

.jp-tocItem-heading:hover.jp-tocItem-active::before {
  background: var(--jp-brand-color0);
  opacity: 1;
}

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

.jp-Collapser {
  flex: 0 0 var(--jp-cell-collapser-width);
  padding: 0;
  margin: 0;
  border: none;
  outline: none;
  background: transparent;
  border-radius: var(--jp-border-radius);
  opacity: 1;
}

.jp-Collapser-child {
  display: block;
  width: 100%;
  box-sizing: border-box;

  /* height: 100% doesn&#39;t work because the height of its parent is computed from content */
  position: absolute;
  top: 0;
  bottom: 0;
}

/*-----------------------------------------------------------------------------
| Printing
|----------------------------------------------------------------------------*/

/*
Hiding collapsers in print mode.

Note: input and output wrappers have &quot;display: block&quot; propery in print mode.
*/

@media print {
  .jp-Collapser {
    display: none;
  }
}

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

/*-----------------------------------------------------------------------------
| Header/Footer
|----------------------------------------------------------------------------*/

/* Hidden by zero height by default */
.jp-CellHeader,
.jp-CellFooter {
  height: 0;
  width: 100%;
  padding: 0;
  margin: 0;
  border: none;
  outline: none;
  background: transparent;
}

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

/*-----------------------------------------------------------------------------
| Input
|----------------------------------------------------------------------------*/

/* All input areas */
.jp-InputArea {
  display: table;
  table-layout: fixed;
  width: 100%;
  overflow: hidden;
}

.jp-InputArea-editor {
  display: table-cell;
  overflow: hidden;
  vertical-align: top;

  /* This is the non-active, default styling */
  border: var(--jp-border-width) solid var(--jp-cell-editor-border-color);
  border-radius: 0;
  background: var(--jp-cell-editor-background);
}

.jp-InputPrompt {
  display: table-cell;
  vertical-align: top;
  width: var(--jp-cell-prompt-width);
  color: var(--jp-cell-inprompt-font-color);
  font-family: var(--jp-cell-prompt-font-family);
  padding: var(--jp-code-padding);
  letter-spacing: var(--jp-cell-prompt-letter-spacing);
  opacity: var(--jp-cell-prompt-opacity);
  line-height: var(--jp-code-line-height);
  font-size: var(--jp-code-font-size);
  border: var(--jp-border-width) solid transparent;

  /* Right align prompt text, don&#39;t wrap to handle large prompt numbers */
  text-align: right;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;

  /* Disable text selection */
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

/*-----------------------------------------------------------------------------
| Mobile
|----------------------------------------------------------------------------*/
@media only screen and (max-width: 760px) {
  .jp-InputArea-editor {
    display: table-row;
    margin-left: var(--jp-notebook-padding);
  }

  .jp-InputPrompt {
    display: table-row;
    text-align: left;
  }
}

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

/*-----------------------------------------------------------------------------
| Placeholder
|----------------------------------------------------------------------------*/

.jp-Placeholder {
  display: table;
  table-layout: fixed;
  width: 100%;
}

.jp-Placeholder-prompt {
  display: table-cell;
  box-sizing: border-box;
}

.jp-Placeholder-content {
  display: table-cell;
  padding: 4px 6px;
  border: 1px solid transparent;
  border-radius: 0;
  background: none;
  box-sizing: border-box;
  cursor: pointer;
}

.jp-Placeholder-contentContainer {
  display: flex;
}

.jp-Placeholder-content:hover,
.jp-InputPlaceholder &gt; .jp-Placeholder-content:hover {
  border-color: var(--jp-layout-color3);
}

.jp-Placeholder-content .jp-MoreHorizIcon {
  width: 32px;
  height: 16px;
  border: 1px solid transparent;
  border-radius: var(--jp-border-radius);
}

.jp-Placeholder-content .jp-MoreHorizIcon:hover {
  border: 1px solid var(--jp-border-color1);
  box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.25);
  background-color: var(--jp-layout-color0);
}

.jp-PlaceholderText {
  white-space: nowrap;
  overflow-x: hidden;
  color: var(--jp-inverse-layout-color3);
  font-family: var(--jp-code-font-family);
}

.jp-InputPlaceholder &gt; .jp-Placeholder-content {
  border-color: var(--jp-cell-editor-border-color);
  background: var(--jp-cell-editor-background);
}

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

/*-----------------------------------------------------------------------------
| Private CSS variables
|----------------------------------------------------------------------------*/

:root {
  --jp-private-cell-scrolling-output-offset: 5px;
}

/*-----------------------------------------------------------------------------
| Cell
|----------------------------------------------------------------------------*/

.jp-Cell {
  padding: var(--jp-cell-padding);
  margin: 0;
  border: none;
  outline: none;
  background: transparent;
}

/*-----------------------------------------------------------------------------
| Common input/output
|----------------------------------------------------------------------------*/

.jp-Cell-inputWrapper,
.jp-Cell-outputWrapper {
  display: flex;
  flex-direction: row;
  padding: 0;
  margin: 0;

  /* Added to reveal the box-shadow on the input and output collapsers. */
  overflow: visible;
}

/* Only input/output areas inside cells */
.jp-Cell-inputArea,
.jp-Cell-outputArea {
  flex: 1 1 auto;
}

/*-----------------------------------------------------------------------------
| Collapser
|----------------------------------------------------------------------------*/

/* Make the output collapser disappear when there is not output, but do so
 * in a manner that leaves it in the layout and preserves its width.
 */
.jp-Cell.jp-mod-noOutputs .jp-Cell-outputCollapser {
  border: none !important;
  background: transparent !important;
}

.jp-Cell:not(.jp-mod-noOutputs) .jp-Cell-outputCollapser {
  min-height: var(--jp-cell-collapser-min-height);
}

/*-----------------------------------------------------------------------------
| Output
|----------------------------------------------------------------------------*/

/* Put a space between input and output when there IS output */
.jp-Cell:not(.jp-mod-noOutputs) .jp-Cell-outputWrapper {
  margin-top: 5px;
}

.jp-CodeCell.jp-mod-outputsScrolled .jp-Cell-outputArea {
  overflow-y: auto;
  max-height: 24em;
  margin-left: var(--jp-private-cell-scrolling-output-offset);
  resize: vertical;
}

.jp-CodeCell.jp-mod-outputsScrolled .jp-Cell-outputArea[style*=&#39;height&#39;] {
  max-height: unset;
}

.jp-CodeCell.jp-mod-outputsScrolled .jp-Cell-outputArea::after {
  content: &#39; &#39;;
  box-shadow: inset 0 0 6px 2px rgb(0 0 0 / 30%);
  width: 100%;
  height: 100%;
  position: sticky;
  bottom: 0;
  top: 0;
  margin-top: -50%;
  float: left;
  display: block;
  pointer-events: none;
}

.jp-CodeCell.jp-mod-outputsScrolled .jp-OutputArea-child {
  padding-top: 6px;
}

.jp-CodeCell.jp-mod-outputsScrolled .jp-OutputArea-prompt {
  width: calc(
    var(--jp-cell-prompt-width) - var(--jp-private-cell-scrolling-output-offset)
  );
}

.jp-CodeCell.jp-mod-outputsScrolled .jp-OutputArea-promptOverlay {
  left: calc(-1 * var(--jp-private-cell-scrolling-output-offset));
}

/*-----------------------------------------------------------------------------
| CodeCell
|----------------------------------------------------------------------------*/

/*-----------------------------------------------------------------------------
| MarkdownCell
|----------------------------------------------------------------------------*/

.jp-MarkdownOutput {
  display: table-cell;
  width: 100%;
  margin-top: 0;
  margin-bottom: 0;
  padding-left: var(--jp-code-padding);
}

.jp-MarkdownOutput.jp-RenderedHTMLCommon {
  overflow: auto;
}

/* collapseHeadingButton (show always if hiddenCellsButton is _not_ shown) */
.jp-collapseHeadingButton {
  display: flex;
  min-height: var(--jp-cell-collapser-min-height);
  font-size: var(--jp-code-font-size);
  position: absolute;
  background-color: transparent;
  background-size: 25px;
  background-repeat: no-repeat;
  background-position-x: center;
  background-position-y: top;
  background-image: var(--jp-icon-caret-down);
  right: 0;
  top: 0;
  bottom: 0;
}

.jp-collapseHeadingButton.jp-mod-collapsed {
  background-image: var(--jp-icon-caret-right);
}

/*
 set the container font size to match that of content
 so that the nested collapse buttons have the right size
*/
.jp-MarkdownCell .jp-InputPrompt {
  font-size: var(--jp-content-font-size1);
}

/*
  Align collapseHeadingButton with cell top header
  The font sizes are identical to the ones in packages/rendermime/style/base.css
*/
.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level=&#39;1&#39;] {
  font-size: var(--jp-content-font-size5);
  background-position-y: calc(0.3 * var(--jp-content-font-size5));
}

.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level=&#39;2&#39;] {
  font-size: var(--jp-content-font-size4);
  background-position-y: calc(0.3 * var(--jp-content-font-size4));
}

.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level=&#39;3&#39;] {
  font-size: var(--jp-content-font-size3);
  background-position-y: calc(0.3 * var(--jp-content-font-size3));
}

.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level=&#39;4&#39;] {
  font-size: var(--jp-content-font-size2);
  background-position-y: calc(0.3 * var(--jp-content-font-size2));
}

.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level=&#39;5&#39;] {
  font-size: var(--jp-content-font-size1);
  background-position-y: top;
}

.jp-mod-rendered .jp-collapseHeadingButton[data-heading-level=&#39;6&#39;] {
  font-size: var(--jp-content-font-size0);
  background-position-y: top;
}

/* collapseHeadingButton (show only on (hover,active) if hiddenCellsButton is shown) */
.jp-Notebook.jp-mod-showHiddenCellsButton .jp-collapseHeadingButton {
  display: none;
}

.jp-Notebook.jp-mod-showHiddenCellsButton
  :is(.jp-MarkdownCell:hover, .jp-mod-active)
  .jp-collapseHeadingButton {
  display: flex;
}

/* showHiddenCellsButton (only show if jp-mod-showHiddenCellsButton is set, which
is a consequence of the showHiddenCellsButton option in Notebook Settings)*/
.jp-Notebook.jp-mod-showHiddenCellsButton .jp-showHiddenCellsButton {
  margin-left: calc(var(--jp-cell-prompt-width) + 2 * var(--jp-code-padding));
  margin-top: var(--jp-code-padding);
  border: 1px solid var(--jp-border-color2);
  background-color: var(--jp-border-color3) !important;
  color: var(--jp-content-font-color0) !important;
  display: flex;
}

.jp-Notebook.jp-mod-showHiddenCellsButton .jp-showHiddenCellsButton:hover {
  background-color: var(--jp-border-color2) !important;
}

.jp-showHiddenCellsButton {
  display: none;
}

/*-----------------------------------------------------------------------------
| Printing
|----------------------------------------------------------------------------*/

/*
Using block instead of flex to allow the use of the break-inside CSS property for
cell outputs.
*/

@media print {
  .jp-Cell-inputWrapper,
  .jp-Cell-outputWrapper {
    display: block;
  }
}

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

/*-----------------------------------------------------------------------------
| Variables
|----------------------------------------------------------------------------*/

:root {
  --jp-notebook-toolbar-padding: 2px 5px 2px 2px;
}

/*-----------------------------------------------------------------------------

/*-----------------------------------------------------------------------------
| Styles
|----------------------------------------------------------------------------*/

.jp-NotebookPanel-toolbar {
  padding: var(--jp-notebook-toolbar-padding);

  /* disable paint containment from lumino 2.0 default strict CSS containment */
  contain: style size !important;
}

.jp-Toolbar-item.jp-Notebook-toolbarCellType .jp-select-wrapper.jp-mod-focused {
  border: none;
  box-shadow: none;
}

.jp-Notebook-toolbarCellTypeDropdown select {
  height: 24px;
  font-size: var(--jp-ui-font-size1);
  line-height: 14px;
  border-radius: 0;
  display: block;
}

.jp-Notebook-toolbarCellTypeDropdown span {
  top: 5px !important;
}

.jp-Toolbar-responsive-popup {
  position: absolute;
  height: fit-content;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-end;
  border-bottom: var(--jp-border-width) solid var(--jp-toolbar-border-color);
  box-shadow: var(--jp-toolbar-box-shadow);
  background: var(--jp-toolbar-background);
  min-height: var(--jp-toolbar-micro-height);
  padding: var(--jp-notebook-toolbar-padding);
  z-index: 1;
  right: 0;
  top: 0;
}

.jp-Toolbar &gt; .jp-Toolbar-responsive-opener {
  margin-left: auto;
}

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

/*-----------------------------------------------------------------------------
| Variables
|----------------------------------------------------------------------------*/

/*-----------------------------------------------------------------------------

/*-----------------------------------------------------------------------------
| Styles
|----------------------------------------------------------------------------*/

.jp-Notebook-ExecutionIndicator {
  position: relative;
  display: inline-block;
  height: 100%;
  z-index: 9997;
}

.jp-Notebook-ExecutionIndicator-tooltip {
  visibility: hidden;
  height: auto;
  width: max-content;
  width: -moz-max-content;
  background-color: var(--jp-layout-color2);
  color: var(--jp-ui-font-color1);
  text-align: justify;
  border-radius: 6px;
  padding: 0 5px;
  position: fixed;
  display: table;
}

.jp-Notebook-ExecutionIndicator-tooltip.up {
  transform: translateX(-50%) translateY(-100%) translateY(-32px);
}

.jp-Notebook-ExecutionIndicator-tooltip.down {
  transform: translateX(calc(-100% + 16px)) translateY(5px);
}

.jp-Notebook-ExecutionIndicator-tooltip.hidden {
  display: none;
}

.jp-Notebook-ExecutionIndicator:hover .jp-Notebook-ExecutionIndicator-tooltip {
  visibility: visible;
}

.jp-Notebook-ExecutionIndicator span {
  font-size: var(--jp-ui-font-size1);
  font-family: var(--jp-ui-font-family);
  color: var(--jp-ui-font-color1);
  line-height: 24px;
  display: block;
}

.jp-Notebook-ExecutionIndicator-progress-bar {
  display: flex;
  justify-content: center;
  height: 100%;
}

/*
 * Copyright (c) Jupyter Development Team.
 * Distributed under the terms of the Modified BSD License.
 */

/*
 * Execution indicator
 */
.jp-tocItem-content::after {
  content: &#39;&#39;;

  /* Must be identical to form a circle */
  width: 12px;
  height: 12px;
  background: none;
  border: none;
  position: absolute;
  right: 0;
}

.jp-tocItem-content[data-running=&#39;0&#39;]::after {
  border-radius: 50%;
  border: var(--jp-border-width) solid var(--jp-inverse-layout-color3);
  background: none;
}

.jp-tocItem-content[data-running=&#39;1&#39;]::after {
  border-radius: 50%;
  border: var(--jp-border-width) solid var(--jp-inverse-layout-color3);
  background-color: var(--jp-inverse-layout-color3);
}

.jp-tocItem-content[data-running=&#39;0&#39;],
.jp-tocItem-content[data-running=&#39;1&#39;] {
  margin-right: 12px;
}

/*
 * Copyright (c) Jupyter Development Team.
 * Distributed under the terms of the Modified BSD License.
 */

.jp-Notebook-footer {
  height: 27px;
  margin-left: calc(
    var(--jp-cell-prompt-width) + var(--jp-cell-collapser-width) +
      var(--jp-cell-padding)
  );
  width: calc(
    100% -
      (
        var(--jp-cell-prompt-width) + var(--jp-cell-collapser-width) +
          var(--jp-cell-padding) + var(--jp-cell-padding)
      )
  );
  border: var(--jp-border-width) solid var(--jp-cell-editor-border-color);
  color: var(--jp-ui-font-color3);
  margin-top: 6px;
  background: none;
  cursor: pointer;
}

.jp-Notebook-footer:focus {
  border-color: var(--jp-cell-editor-active-border-color);
}

/* For devices that support hovering, hide footer until hover */
@media (hover: hover) {
  .jp-Notebook-footer {
    opacity: 0;
  }

  .jp-Notebook-footer:focus,
  .jp-Notebook-footer:hover {
    opacity: 1;
  }
}

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

/*-----------------------------------------------------------------------------
| Imports
|----------------------------------------------------------------------------*/

/*-----------------------------------------------------------------------------
| CSS variables
|----------------------------------------------------------------------------*/

:root {
  --jp-side-by-side-output-size: 1fr;
  --jp-side-by-side-resized-cell: var(--jp-side-by-side-output-size);
  --jp-private-notebook-dragImage-width: 304px;
  --jp-private-notebook-dragImage-height: 36px;
  --jp-private-notebook-selected-color: var(--md-blue-400);
  --jp-private-notebook-active-color: var(--md-green-400);
}

/*-----------------------------------------------------------------------------
| Notebook
|----------------------------------------------------------------------------*/

/* stylelint-disable selector-max-class */

.jp-NotebookPanel {
  display: block;
  height: 100%;
}

.jp-NotebookPanel.jp-Document {
  min-width: 240px;
  min-height: 120px;
}

.jp-Notebook {
  padding: var(--jp-notebook-padding);
  outline: none;
  overflow: auto;
  background: var(--jp-layout-color0);
}

.jp-Notebook.jp-mod-scrollPastEnd::after {
  display: block;
  content: &#39;&#39;;
  min-height: var(--jp-notebook-scroll-padding);
}

.jp-MainAreaWidget-ContainStrict .jp-Notebook * {
  contain: strict;
}

.jp-Notebook .jp-Cell {
  overflow: visible;
}

.jp-Notebook .jp-Cell .jp-InputPrompt {
  cursor: move;
}

/*-----------------------------------------------------------------------------
| Notebook state related styling
|
| The notebook and cells each have states, here are the possibilities:
|
| - Notebook
|   - Command
|   - Edit
| - Cell
|   - None
|   - Active (only one can be active)
|   - Selected (the cells actions are applied to)
|   - Multiselected (when multiple selected, the cursor)
|   - No outputs
|----------------------------------------------------------------------------*/

/* Command or edit modes */

.jp-Notebook .jp-Cell:not(.jp-mod-active) .jp-InputPrompt {
  opacity: var(--jp-cell-prompt-not-active-opacity);
  color: var(--jp-cell-prompt-not-active-font-color);
}

.jp-Notebook .jp-Cell:not(.jp-mod-active) .jp-OutputPrompt {
  opacity: var(--jp-cell-prompt-not-active-opacity);
  color: var(--jp-cell-prompt-not-active-font-color);
}

/* cell is active */
.jp-Notebook .jp-Cell.jp-mod-active .jp-Collapser {
  background: var(--jp-brand-color1);
}

/* cell is dirty */
.jp-Notebook .jp-Cell.jp-mod-dirty .jp-InputPrompt {
  color: var(--jp-warn-color1);
}

.jp-Notebook .jp-Cell.jp-mod-dirty .jp-InputPrompt::before {
  color: var(--jp-warn-color1);
  content: &#39;•&#39;;
}

.jp-Notebook .jp-Cell.jp-mod-active.jp-mod-dirty .jp-Collapser {
  background: var(--jp-warn-color1);
}

/* collapser is hovered */
.jp-Notebook .jp-Cell .jp-Collapser:hover {
  box-shadow: var(--jp-elevation-z2);
  background: var(--jp-brand-color1);
  opacity: var(--jp-cell-collapser-not-active-hover-opacity);
}

/* cell is active and collapser is hovered */
.jp-Notebook .jp-Cell.jp-mod-active .jp-Collapser:hover {
  background: var(--jp-brand-color0);
  opacity: 1;
}

/* Command mode */

.jp-Notebook.jp-mod-commandMode .jp-Cell.jp-mod-selected {
  background: var(--jp-notebook-multiselected-color);
}

.jp-Notebook.jp-mod-commandMode
  .jp-Cell.jp-mod-active.jp-mod-selected:not(.jp-mod-multiSelected) {
  background: transparent;
}

/* Edit mode */

.jp-Notebook.jp-mod-editMode .jp-Cell.jp-mod-active .jp-InputArea-editor {
  border: var(--jp-border-width) solid var(--jp-cell-editor-active-border-color);
  box-shadow: var(--jp-input-box-shadow);
  background-color: var(--jp-cell-editor-active-background);
}

/*-----------------------------------------------------------------------------
| Notebook drag and drop
|----------------------------------------------------------------------------*/

.jp-Notebook-cell.jp-mod-dropSource {
  opacity: 0.5;
}

.jp-Notebook-cell.jp-mod-dropTarget,
.jp-Notebook.jp-mod-commandMode
  .jp-Notebook-cell.jp-mod-active.jp-mod-selected.jp-mod-dropTarget {
  border-top-color: var(--jp-private-notebook-selected-color);
  border-top-style: solid;
  border-top-width: 2px;
}

.jp-dragImage {
  display: block;
  flex-direction: row;
  width: var(--jp-private-notebook-dragImage-width);
  height: var(--jp-private-notebook-dragImage-height);
  border: var(--jp-border-width) solid var(--jp-cell-editor-border-color);
  background: var(--jp-cell-editor-background);
  overflow: visible;
}

.jp-dragImage-singlePrompt {
  box-shadow: 2px 2px 4px 0 rgba(0, 0, 0, 0.12);
}

.jp-dragImage .jp-dragImage-content {
  flex: 1 1 auto;
  z-index: 2;
  font-size: var(--jp-code-font-size);
  font-family: var(--jp-code-font-family);
  line-height: var(--jp-code-line-height);
  padding: var(--jp-code-padding);
  border: var(--jp-border-width) solid var(--jp-cell-editor-border-color);
  background: var(--jp-cell-editor-background-color);
  color: var(--jp-content-font-color3);
  text-align: left;
  margin: 4px 4px 4px 0;
}

.jp-dragImage .jp-dragImage-prompt {
  flex: 0 0 auto;
  min-width: 36px;
  color: var(--jp-cell-inprompt-font-color);
  padding: var(--jp-code-padding);
  padding-left: 12px;
  font-family: var(--jp-cell-prompt-font-family);
  letter-spacing: var(--jp-cell-prompt-letter-spacing);
  line-height: 1.9;
  font-size: var(--jp-code-font-size);
  border: var(--jp-border-width) solid transparent;
}

.jp-dragImage-multipleBack {
  z-index: -1;
  position: absolute;
  height: 32px;
  width: 300px;
  top: 8px;
  left: 8px;
  background: var(--jp-layout-color2);
  border: var(--jp-border-width) solid var(--jp-input-border-color);
  box-shadow: 2px 2px 4px 0 rgba(0, 0, 0, 0.12);
}

/*-----------------------------------------------------------------------------
| Cell toolbar
|----------------------------------------------------------------------------*/

.jp-NotebookTools {
  display: block;
  min-width: var(--jp-sidebar-min-width);
  color: var(--jp-ui-font-color1);
  background: var(--jp-layout-color1);

  /* This is needed so that all font sizing of children done in ems is
    * relative to this base size */
  font-size: var(--jp-ui-font-size1);
  overflow: auto;
}

.jp-ActiveCellTool {
  padding: 12px 0;
  display: flex;
}

.jp-ActiveCellTool-Content {
  flex: 1 1 auto;
}

.jp-ActiveCellTool .jp-ActiveCellTool-CellContent {
  background: var(--jp-cell-editor-background);
  border: var(--jp-border-width) solid var(--jp-cell-editor-border-color);
  border-radius: 0;
  min-height: 29px;
}

.jp-ActiveCellTool .jp-InputPrompt {
  min-width: calc(var(--jp-cell-prompt-width) * 0.75);
}

.jp-ActiveCellTool-CellContent &gt; pre {
  padding: 5px 4px;
  margin: 0;
  white-space: normal;
}

.jp-MetadataEditorTool {
  flex-direction: column;
  padding: 12px 0;
}

.jp-RankedPanel &gt; :not(:first-child) {
  margin-top: 12px;
}

.jp-KeySelector select.jp-mod-styled {
  font-size: var(--jp-ui-font-size1);
  color: var(--jp-ui-font-color0);
  border: var(--jp-border-width) solid var(--jp-border-color1);
}

.jp-KeySelector label,
.jp-MetadataEditorTool label,
.jp-NumberSetter label {
  line-height: 1.4;
}

.jp-NotebookTools .jp-select-wrapper {
  margin-top: 4px;
  margin-bottom: 0;
}

.jp-NumberSetter input {
  width: 100%;
  margin-top: 4px;
}

.jp-NotebookTools .jp-Collapse {
  margin-top: 16px;
}

/*-----------------------------------------------------------------------------
| Presentation Mode (.jp-mod-presentationMode)
|----------------------------------------------------------------------------*/

.jp-mod-presentationMode .jp-Notebook {
  --jp-content-font-size1: var(--jp-content-presentation-font-size1);
  --jp-code-font-size: var(--jp-code-presentation-font-size);
}

.jp-mod-presentationMode .jp-Notebook .jp-Cell .jp-InputPrompt,
.jp-mod-presentationMode .jp-Notebook .jp-Cell .jp-OutputPrompt {
  flex: 0 0 110px;
}

/*-----------------------------------------------------------------------------
| Side-by-side Mode (.jp-mod-sideBySide)
|----------------------------------------------------------------------------*/
.jp-mod-sideBySide.jp-Notebook .jp-Notebook-cell {
  margin-top: 3em;
  margin-bottom: 3em;
  margin-left: 5%;
  margin-right: 5%;
}

.jp-mod-sideBySide.jp-Notebook .jp-CodeCell {
  display: grid;
  grid-template-columns: minmax(0, 1fr) min-content minmax(
      0,
      var(--jp-side-by-side-output-size)
    );
  grid-template-rows: auto minmax(0, 1fr) auto;
  grid-template-areas:
    &#39;header header header&#39;
    &#39;input handle output&#39;
    &#39;footer footer footer&#39;;
}

.jp-mod-sideBySide.jp-Notebook .jp-CodeCell.jp-mod-resizedCell {
  grid-template-columns: minmax(0, 1fr) min-content minmax(
      0,
      var(--jp-side-by-side-resized-cell)
    );
}

.jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-CellHeader {
  grid-area: header;
}

.jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-Cell-inputWrapper {
  grid-area: input;
}

.jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-Cell-outputWrapper {
  /* overwrite the default margin (no vertical separation needed in side by side move */
  margin-top: 0;
  grid-area: output;
}

.jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-CellFooter {
  grid-area: footer;
}

.jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-CellResizeHandle {
  grid-area: handle;
  user-select: none;
  display: block;
  height: 100%;
  cursor: ew-resize;
  padding: 0 var(--jp-cell-padding);
}

.jp-mod-sideBySide.jp-Notebook .jp-CodeCell .jp-CellResizeHandle::after {
  content: &#39;&#39;;
  display: block;
  background: var(--jp-border-color2);
  height: 100%;
  width: 5px;
}

.jp-mod-sideBySide.jp-Notebook
  .jp-CodeCell.jp-mod-resizedCell
  .jp-CellResizeHandle::after {
  background: var(--jp-border-color0);
}

.jp-CellResizeHandle {
  display: none;
}

/*-----------------------------------------------------------------------------
| Placeholder
|----------------------------------------------------------------------------*/

.jp-Cell-Placeholder {
  padding-left: 55px;
}

.jp-Cell-Placeholder-wrapper {
  background: #fff;
  border: 1px solid;
  border-color: #e5e6e9 #dfe0e4 #d0d1d5;
  border-radius: 4px;
  -webkit-border-radius: 4px;
  margin: 10px 15px;
}

.jp-Cell-Placeholder-wrapper-inner {
  padding: 15px;
  position: relative;
}

.jp-Cell-Placeholder-wrapper-body {
  background-repeat: repeat;
  background-size: 50% auto;
}

.jp-Cell-Placeholder-wrapper-body div {
  background: #f6f7f8;
  background-image: -webkit-linear-gradient(
    left,
    #f6f7f8 0%,
    #edeef1 20%,
    #f6f7f8 40%,
    #f6f7f8 100%
  );
  background-repeat: no-repeat;
  background-size: 800px 104px;
  height: 104px;
  position: absolute;
  right: 15px;
  left: 15px;
  top: 15px;
}

div.jp-Cell-Placeholder-h1 {
  top: 20px;
  height: 20px;
  left: 15px;
  width: 150px;
}

div.jp-Cell-Placeholder-h2 {
  left: 15px;
  top: 50px;
  height: 10px;
  width: 100px;
}

div.jp-Cell-Placeholder-content-1,
div.jp-Cell-Placeholder-content-2,
div.jp-Cell-Placeholder-content-3 {
  left: 15px;
  right: 15px;
  height: 10px;
}

div.jp-Cell-Placeholder-content-1 {
  top: 100px;
}

div.jp-Cell-Placeholder-content-2 {
  top: 120px;
}

div.jp-Cell-Placeholder-content-3 {
  top: 140px;
}

&lt;/style&gt;
&lt;style type=&quot;text/css&quot;&gt;
/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

/*
The following CSS variables define the main, public API for styling JupyterLab.
These variables should be used by all plugins wherever possible. In other
words, plugins should not define custom colors, sizes, etc unless absolutely
necessary. This enables users to change the visual theme of JupyterLab
by changing these variables.

Many variables appear in an ordered sequence (0,1,2,3). These sequences
are designed to work well together, so for example, `--jp-border-color1` should
be used with `--jp-layout-color1`. The numbers have the following meanings:

* 0: super-primary, reserved for special emphasis
* 1: primary, most important under normal situations
* 2: secondary, next most important under normal situations
* 3: tertiary, next most important under normal situations

Throughout JupyterLab, we are mostly following principles from Google&#39;s
Material Design when selecting colors. We are not, however, following
all of MD as it is not optimized for dense, information rich UIs.
*/

:root {
  /* Elevation
   *
   * We style box-shadows using Material Design&#39;s idea of elevation. These particular numbers are taken from here:
   *
   * https://github.com/material-components/material-components-web
   * https://material-components-web.appspot.com/elevation.html
   */

  --jp-shadow-base-lightness: 0;
  --jp-shadow-umbra-color: rgba(
    var(--jp-shadow-base-lightness),
    var(--jp-shadow-base-lightness),
    var(--jp-shadow-base-lightness),
    0.2
  );
  --jp-shadow-penumbra-color: rgba(
    var(--jp-shadow-base-lightness),
    var(--jp-shadow-base-lightness),
    var(--jp-shadow-base-lightness),
    0.14
  );
  --jp-shadow-ambient-color: rgba(
    var(--jp-shadow-base-lightness),
    var(--jp-shadow-base-lightness),
    var(--jp-shadow-base-lightness),
    0.12
  );
  --jp-elevation-z0: none;
  --jp-elevation-z1: 0 2px 1px -1px var(--jp-shadow-umbra-color),
    0 1px 1px 0 var(--jp-shadow-penumbra-color),
    0 1px 3px 0 var(--jp-shadow-ambient-color);
  --jp-elevation-z2: 0 3px 1px -2px var(--jp-shadow-umbra-color),
    0 2px 2px 0 var(--jp-shadow-penumbra-color),
    0 1px 5px 0 var(--jp-shadow-ambient-color);
  --jp-elevation-z4: 0 2px 4px -1px var(--jp-shadow-umbra-color),
    0 4px 5px 0 var(--jp-shadow-penumbra-color),
    0 1px 10px 0 var(--jp-shadow-ambient-color);
  --jp-elevation-z6: 0 3px 5px -1px var(--jp-shadow-umbra-color),
    0 6px 10px 0 var(--jp-shadow-penumbra-color),
    0 1px 18px 0 var(--jp-shadow-ambient-color);
  --jp-elevation-z8: 0 5px 5px -3px var(--jp-shadow-umbra-color),
    0 8px 10px 1px var(--jp-shadow-penumbra-color),
    0 3px 14px 2px var(--jp-shadow-ambient-color);
  --jp-elevation-z12: 0 7px 8px -4px var(--jp-shadow-umbra-color),
    0 12px 17px 2px var(--jp-shadow-penumbra-color),
    0 5px 22px 4px var(--jp-shadow-ambient-color);
  --jp-elevation-z16: 0 8px 10px -5px var(--jp-shadow-umbra-color),
    0 16px 24px 2px var(--jp-shadow-penumbra-color),
    0 6px 30px 5px var(--jp-shadow-ambient-color);
  --jp-elevation-z20: 0 10px 13px -6px var(--jp-shadow-umbra-color),
    0 20px 31px 3px var(--jp-shadow-penumbra-color),
    0 8px 38px 7px var(--jp-shadow-ambient-color);
  --jp-elevation-z24: 0 11px 15px -7px var(--jp-shadow-umbra-color),
    0 24px 38px 3px var(--jp-shadow-penumbra-color),
    0 9px 46px 8px var(--jp-shadow-ambient-color);

  /* Borders
   *
   * The following variables, specify the visual styling of borders in JupyterLab.
   */

  --jp-border-width: 1px;
  --jp-border-color0: var(--md-grey-400);
  --jp-border-color1: var(--md-grey-400);
  --jp-border-color2: var(--md-grey-300);
  --jp-border-color3: var(--md-grey-200);
  --jp-inverse-border-color: var(--md-grey-600);
  --jp-border-radius: 2px;

  /* UI Fonts
   *
   * The UI font CSS variables are used for the typography all of the JupyterLab
   * user interface elements that are not directly user generated content.
   *
   * The font sizing here is done assuming that the body font size of --jp-ui-font-size1
   * is applied to a parent element. When children elements, such as headings, are sized
   * in em all things will be computed relative to that body size.
   */

  --jp-ui-font-scale-factor: 1.2;
  --jp-ui-font-size0: 0.83333em;
  --jp-ui-font-size1: 13px; /* Base font size */
  --jp-ui-font-size2: 1.2em;
  --jp-ui-font-size3: 1.44em;
  --jp-ui-font-family: system-ui, -apple-system, blinkmacsystemfont, &#39;Segoe UI&#39;,
    helvetica, arial, sans-serif, &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;,
    &#39;Segoe UI Symbol&#39;;

  /*
   * Use these font colors against the corresponding main layout colors.
   * In a light theme, these go from dark to light.
   */

  /* Defaults use Material Design specification */
  --jp-ui-font-color0: rgba(0, 0, 0, 1);
  --jp-ui-font-color1: rgba(0, 0, 0, 0.87);
  --jp-ui-font-color2: rgba(0, 0, 0, 0.54);
  --jp-ui-font-color3: rgba(0, 0, 0, 0.38);

  /*
   * Use these against the brand/accent/warn/error colors.
   * These will typically go from light to darker, in both a dark and light theme.
   */

  --jp-ui-inverse-font-color0: rgba(255, 255, 255, 1);
  --jp-ui-inverse-font-color1: rgba(255, 255, 255, 1);
  --jp-ui-inverse-font-color2: rgba(255, 255, 255, 0.7);
  --jp-ui-inverse-font-color3: rgba(255, 255, 255, 0.5);

  /* Content Fonts
   *
   * Content font variables are used for typography of user generated content.
   *
   * The font sizing here is done assuming that the body font size of --jp-content-font-size1
   * is applied to a parent element. When children elements, such as headings, are sized
   * in em all things will be computed relative to that body size.
   */

  --jp-content-line-height: 1.6;
  --jp-content-font-scale-factor: 1.2;
  --jp-content-font-size0: 0.83333em;
  --jp-content-font-size1: 14px; /* Base font size */
  --jp-content-font-size2: 1.2em;
  --jp-content-font-size3: 1.44em;
  --jp-content-font-size4: 1.728em;
  --jp-content-font-size5: 2.0736em;

  /* This gives a magnification of about 125% in presentation mode over normal. */
  --jp-content-presentation-font-size1: 17px;
  --jp-content-heading-line-height: 1;
  --jp-content-heading-margin-top: 1.2em;
  --jp-content-heading-margin-bottom: 0.8em;
  --jp-content-heading-font-weight: 500;

  /* Defaults use Material Design specification */
  --jp-content-font-color0: rgba(0, 0, 0, 1);
  --jp-content-font-color1: rgba(0, 0, 0, 0.87);
  --jp-content-font-color2: rgba(0, 0, 0, 0.54);
  --jp-content-font-color3: rgba(0, 0, 0, 0.38);
  --jp-content-link-color: var(--md-blue-900);
  --jp-content-font-family: system-ui, -apple-system, blinkmacsystemfont,
    &#39;Segoe UI&#39;, helvetica, arial, sans-serif, &#39;Apple Color Emoji&#39;,
    &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;;

  /*
   * Code Fonts
   *
   * Code font variables are used for typography of code and other monospaces content.
   */

  --jp-code-font-size: 13px;
  --jp-code-line-height: 1.3077; /* 17px for 13px base */
  --jp-code-padding: 5px; /* 5px for 13px base, codemirror highlighting needs integer px value */
  --jp-code-font-family-default: menlo, consolas, &#39;DejaVu Sans Mono&#39;, monospace;
  --jp-code-font-family: var(--jp-code-font-family-default);

  /* This gives a magnification of about 125% in presentation mode over normal. */
  --jp-code-presentation-font-size: 16px;

  /* may need to tweak cursor width if you change font size */
  --jp-code-cursor-width0: 1.4px;
  --jp-code-cursor-width1: 2px;
  --jp-code-cursor-width2: 4px;

  /* Layout
   *
   * The following are the main layout colors use in JupyterLab. In a light
   * theme these would go from light to dark.
   */

  --jp-layout-color0: white;
  --jp-layout-color1: white;
  --jp-layout-color2: var(--md-grey-200);
  --jp-layout-color3: var(--md-grey-400);
  --jp-layout-color4: var(--md-grey-600);

  /* Inverse Layout
   *
   * The following are the inverse layout colors use in JupyterLab. In a light
   * theme these would go from dark to light.
   */

  --jp-inverse-layout-color0: #111;
  --jp-inverse-layout-color1: var(--md-grey-900);
  --jp-inverse-layout-color2: var(--md-grey-800);
  --jp-inverse-layout-color3: var(--md-grey-700);
  --jp-inverse-layout-color4: var(--md-grey-600);

  /* Brand/accent */

  --jp-brand-color0: var(--md-blue-900);
  --jp-brand-color1: var(--md-blue-700);
  --jp-brand-color2: var(--md-blue-300);
  --jp-brand-color3: var(--md-blue-100);
  --jp-brand-color4: var(--md-blue-50);
  --jp-accent-color0: var(--md-green-900);
  --jp-accent-color1: var(--md-green-700);
  --jp-accent-color2: var(--md-green-300);
  --jp-accent-color3: var(--md-green-100);

  /* State colors (warn, error, success, info) */

  --jp-warn-color0: var(--md-orange-900);
  --jp-warn-color1: var(--md-orange-700);
  --jp-warn-color2: var(--md-orange-300);
  --jp-warn-color3: var(--md-orange-100);
  --jp-error-color0: var(--md-red-900);
  --jp-error-color1: var(--md-red-700);
  --jp-error-color2: var(--md-red-300);
  --jp-error-color3: var(--md-red-100);
  --jp-success-color0: var(--md-green-900);
  --jp-success-color1: var(--md-green-700);
  --jp-success-color2: var(--md-green-300);
  --jp-success-color3: var(--md-green-100);
  --jp-info-color0: var(--md-cyan-900);
  --jp-info-color1: var(--md-cyan-700);
  --jp-info-color2: var(--md-cyan-300);
  --jp-info-color3: var(--md-cyan-100);

  /* Cell specific styles */

  --jp-cell-padding: 5px;
  --jp-cell-collapser-width: 8px;
  --jp-cell-collapser-min-height: 20px;
  --jp-cell-collapser-not-active-hover-opacity: 0.6;
  --jp-cell-editor-background: var(--md-grey-100);
  --jp-cell-editor-border-color: var(--md-grey-300);
  --jp-cell-editor-box-shadow: inset 0 0 2px var(--md-blue-300);
  --jp-cell-editor-active-background: var(--jp-layout-color0);
  --jp-cell-editor-active-border-color: var(--jp-brand-color1);
  --jp-cell-prompt-width: 64px;
  --jp-cell-prompt-font-family: var(--jp-code-font-family-default);
  --jp-cell-prompt-letter-spacing: 0;
  --jp-cell-prompt-opacity: 1;
  --jp-cell-prompt-not-active-opacity: 0.5;
  --jp-cell-prompt-not-active-font-color: var(--md-grey-700);

  /* A custom blend of MD grey and blue 600
   * See https://meyerweb.com/eric/tools/color-blend/#546E7A:1E88E5:5:hex */
  --jp-cell-inprompt-font-color: #307fc1;

  /* A custom blend of MD grey and orange 600
   * https://meyerweb.com/eric/tools/color-blend/#546E7A:F4511E:5:hex */
  --jp-cell-outprompt-font-color: #bf5b3d;

  /* Notebook specific styles */

  --jp-notebook-padding: 10px;
  --jp-notebook-select-background: var(--jp-layout-color1);
  --jp-notebook-multiselected-color: var(--md-blue-50);

  /* The scroll padding is calculated to fill enough space at the bottom of the
  notebook to show one single-line cell (with appropriate padding) at the top
  when the notebook is scrolled all the way to the bottom. We also subtract one
  pixel so that no scrollbar appears if we have just one single-line cell in the
  notebook. This padding is to enable a &#39;scroll past end&#39; feature in a notebook.
  */
  --jp-notebook-scroll-padding: calc(
    100% - var(--jp-code-font-size) * var(--jp-code-line-height) -
      var(--jp-code-padding) - var(--jp-cell-padding) - 1px
  );

  /* Rendermime styles */

  --jp-rendermime-error-background: #fdd;
  --jp-rendermime-table-row-background: var(--md-grey-100);
  --jp-rendermime-table-row-hover-background: var(--md-light-blue-50);

  /* Dialog specific styles */

  --jp-dialog-background: rgba(0, 0, 0, 0.25);

  /* Console specific styles */

  --jp-console-padding: 10px;

  /* Toolbar specific styles */

  --jp-toolbar-border-color: var(--jp-border-color1);
  --jp-toolbar-micro-height: 8px;
  --jp-toolbar-background: var(--jp-layout-color1);
  --jp-toolbar-box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.24);
  --jp-toolbar-header-margin: 4px 4px 0 4px;
  --jp-toolbar-active-background: var(--md-grey-300);

  /* Statusbar specific styles */

  --jp-statusbar-height: 24px;

  /* Input field styles */

  --jp-input-box-shadow: inset 0 0 2px var(--md-blue-300);
  --jp-input-active-background: var(--jp-layout-color1);
  --jp-input-hover-background: var(--jp-layout-color1);
  --jp-input-background: var(--md-grey-100);
  --jp-input-border-color: var(--jp-inverse-border-color);
  --jp-input-active-border-color: var(--jp-brand-color1);
  --jp-input-active-box-shadow-color: rgba(19, 124, 189, 0.3);

  /* General editor styles */

  --jp-editor-selected-background: #d9d9d9;
  --jp-editor-selected-focused-background: #d7d4f0;
  --jp-editor-cursor-color: var(--jp-ui-font-color0);

  /* Code mirror specific styles */

  --jp-mirror-editor-keyword-color: #008000;
  --jp-mirror-editor-atom-color: #88f;
  --jp-mirror-editor-number-color: #080;
  --jp-mirror-editor-def-color: #00f;
  --jp-mirror-editor-variable-color: var(--md-grey-900);
  --jp-mirror-editor-variable-2-color: rgb(0, 54, 109);
  --jp-mirror-editor-variable-3-color: #085;
  --jp-mirror-editor-punctuation-color: #05a;
  --jp-mirror-editor-property-color: #05a;
  --jp-mirror-editor-operator-color: #a2f;
  --jp-mirror-editor-comment-color: #408080;
  --jp-mirror-editor-string-color: #ba2121;
  --jp-mirror-editor-string-2-color: #708;
  --jp-mirror-editor-meta-color: #a2f;
  --jp-mirror-editor-qualifier-color: #555;
  --jp-mirror-editor-builtin-color: #008000;
  --jp-mirror-editor-bracket-color: #997;
  --jp-mirror-editor-tag-color: #170;
  --jp-mirror-editor-attribute-color: #00c;
  --jp-mirror-editor-header-color: blue;
  --jp-mirror-editor-quote-color: #090;
  --jp-mirror-editor-link-color: #00c;
  --jp-mirror-editor-error-color: #f00;
  --jp-mirror-editor-hr-color: #999;

  /*
    RTC user specific colors.
    These colors are used for the cursor, username in the editor,
    and the icon of the user.
  */

  --jp-collaborator-color1: #ffad8e;
  --jp-collaborator-color2: #dac83d;
  --jp-collaborator-color3: #72dd76;
  --jp-collaborator-color4: #00e4d0;
  --jp-collaborator-color5: #45d4ff;
  --jp-collaborator-color6: #e2b1ff;
  --jp-collaborator-color7: #ff9de6;

  /* Vega extension styles */

  --jp-vega-background: white;

  /* Sidebar-related styles */

  --jp-sidebar-min-width: 250px;

  /* Search-related styles */

  --jp-search-toggle-off-opacity: 0.5;
  --jp-search-toggle-hover-opacity: 0.8;
  --jp-search-toggle-on-opacity: 1;
  --jp-search-selected-match-background-color: rgb(245, 200, 0);
  --jp-search-selected-match-color: black;
  --jp-search-unselected-match-background-color: var(
    --jp-inverse-layout-color0
  );
  --jp-search-unselected-match-color: var(--jp-ui-inverse-font-color0);

  /* Icon colors that work well with light or dark backgrounds */
  --jp-icon-contrast-color0: var(--md-purple-600);
  --jp-icon-contrast-color1: var(--md-green-600);
  --jp-icon-contrast-color2: var(--md-pink-600);
  --jp-icon-contrast-color3: var(--md-blue-600);

  /* Button colors */
  --jp-accept-color-normal: var(--md-blue-700);
  --jp-accept-color-hover: var(--md-blue-800);
  --jp-accept-color-active: var(--md-blue-900);
  --jp-warn-color-normal: var(--md-red-700);
  --jp-warn-color-hover: var(--md-red-800);
  --jp-warn-color-active: var(--md-red-900);
  --jp-reject-color-normal: var(--md-grey-600);
  --jp-reject-color-hover: var(--md-grey-700);
  --jp-reject-color-active: var(--md-grey-800);

  /* File or activity icons and switch semantic variables */
  --jp-jupyter-icon-color: #f37626;
  --jp-notebook-icon-color: #f37626;
  --jp-json-icon-color: var(--md-orange-700);
  --jp-console-icon-background-color: var(--md-blue-700);
  --jp-console-icon-color: white;
  --jp-terminal-icon-background-color: var(--md-grey-800);
  --jp-terminal-icon-color: var(--md-grey-200);
  --jp-text-editor-icon-color: var(--md-grey-700);
  --jp-inspector-icon-color: var(--md-grey-700);
  --jp-switch-color: var(--md-grey-400);
  --jp-switch-true-position-color: var(--md-orange-900);
}
&lt;/style&gt;
&lt;style type=&quot;text/css&quot;&gt;
/* Force rendering true colors when outputing to pdf */
* {
  -webkit-print-color-adjust: exact;
}

/* Misc */
a.anchor-link {
  display: none;
}

/* Input area styling */
.jp-InputArea {
  overflow: hidden;
}

.jp-InputArea-editor {
  overflow: hidden;
}

.cm-editor.cm-s-jupyter .highlight pre {
/* weird, but --jp-code-padding defined to be 5px but 4px horizontal padding is hardcoded for pre.cm-line */
  padding: var(--jp-code-padding) 4px;
  margin: 0;

  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  color: inherit;

}

.jp-OutputArea-output pre {
  line-height: inherit;
  font-family: inherit;
}

.jp-RenderedText pre {
  color: var(--jp-content-font-color1);
  font-size: var(--jp-code-font-size);
}

/* Hiding the collapser by default */
.jp-Collapser {
  display: none;
}

@page {
    margin: 0.5in; /* Margin for each printed piece of paper */
}

@media print {
  .jp-Cell-inputWrapper,
  .jp-Cell-outputWrapper {
    display: block;
  }
}
&lt;/style&gt;
&lt;!-- Load mathjax --&gt;
&lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS_CHTML-full,Safe&quot;&gt; &lt;/script&gt;
&lt;!-- MathJax configuration --&gt;
&lt;script type=&quot;text/x-mathjax-config&quot;&gt;
    init_mathjax = function() {
        if (window.MathJax) {
        // MathJax loaded
            MathJax.Hub.Config({
                TeX: {
                    equationNumbers: {
                    autoNumber: &quot;AMS&quot;,
                    useLabelIds: true
                    }
                },
                tex2jax: {
                    inlineMath: [ [&#39;$&#39;,&#39;$&#39;], [&quot;\\(&quot;,&quot;\\)&quot;] ],
                    displayMath: [ [&#39;$$&#39;,&#39;$$&#39;], [&quot;\\[&quot;,&quot;\\]&quot;] ],
                    processEscapes: true,
                    processEnvironments: true
                },
                displayAlign: &#39;center&#39;,
                CommonHTML: {
                    linebreaks: {
                    automatic: true
                    }
                }
            });

            MathJax.Hub.Queue([&quot;Typeset&quot;, MathJax.Hub]);
        }
    }
    init_mathjax();
    &lt;/script&gt;
&lt;!-- End of mathjax configuration --&gt;&lt;script type=&quot;module&quot;&gt;
  document.addEventListener(&quot;DOMContentLoaded&quot;, async () =&gt; {
    const diagrams = document.querySelectorAll(&quot;.jp-Mermaid &gt; pre.mermaid&quot;);
    // do not load mermaidjs if not needed
    if (!diagrams.length) {
      return;
    }
    const mermaid = (await import(&quot;https://cdnjs.cloudflare.com/ajax/libs/mermaid/10.7.0/mermaid.esm.min.mjs&quot;)).default;
    const parser = new DOMParser();

    mermaid.initialize({
      maxTextSize: 100000,
      maxEdges: 100000,
      startOnLoad: false,
      fontFamily: window
        .getComputedStyle(document.body)
        .getPropertyValue(&quot;--jp-ui-font-family&quot;),
      theme: document.querySelector(&quot;body[data-jp-theme-light=&#39;true&#39;]&quot;)
        ? &quot;default&quot;
        : &quot;dark&quot;,
    });

    let _nextMermaidId = 0;

    function makeMermaidImage(svg) {
      const img = document.createElement(&quot;img&quot;);
      const doc = parser.parseFromString(svg, &quot;image/svg+xml&quot;);
      const svgEl = doc.querySelector(&quot;svg&quot;);
      const { maxWidth } = svgEl?.style || {};
      const firstTitle = doc.querySelector(&quot;title&quot;);
      const firstDesc = doc.querySelector(&quot;desc&quot;);

      img.setAttribute(&quot;src&quot;, `data:image/svg+xml,${encodeURIComponent(svg)}`);
      if (maxWidth) {
        img.width = parseInt(maxWidth);
      }
      if (firstTitle) {
        img.setAttribute(&quot;alt&quot;, firstTitle.textContent);
      }
      if (firstDesc) {
        const caption = document.createElement(&quot;figcaption&quot;);
        caption.className = &quot;sr-only&quot;;
        caption.textContent = firstDesc.textContent;
        return [img, caption];
      }
      return [img];
    }

    async function makeMermaidError(text) {
      let errorMessage = &quot;&quot;;
      try {
        await mermaid.parse(text);
      } catch (err) {
        errorMessage = `${err}`;
      }

      const result = document.createElement(&quot;details&quot;);
      result.className = &#39;jp-RenderedMermaid-Details&#39;;
      const summary = document.createElement(&quot;summary&quot;);
      summary.className = &#39;jp-RenderedMermaid-Summary&#39;;
      const pre = document.createElement(&quot;pre&quot;);
      const code = document.createElement(&quot;code&quot;);
      code.innerText = text;
      pre.appendChild(code);
      summary.appendChild(pre);
      result.appendChild(summary);

      const warning = document.createElement(&quot;pre&quot;);
      warning.innerText = errorMessage;
      result.appendChild(warning);
      return [result];
    }

    async function renderOneMarmaid(src) {
      const id = `jp-mermaid-${_nextMermaidId++}`;
      const parent = src.parentNode;
      let raw = src.textContent.trim();
      const el = document.createElement(&quot;div&quot;);
      el.style.visibility = &quot;hidden&quot;;
      document.body.appendChild(el);
      let results = null;
      let output = null;
      try {
        let { svg } = await mermaid.render(id, raw, el);
        svg = cleanMermaidSvg(svg);
        results = makeMermaidImage(svg);
        output = document.createElement(&quot;figure&quot;);
        results.map(output.appendChild, output);
      } catch (err) {
        parent.classList.add(&quot;jp-mod-warning&quot;);
        results = await makeMermaidError(raw);
        output = results[0];
      } finally {
        el.remove();
      }
      parent.classList.add(&quot;jp-RenderedMermaid&quot;);
      parent.appendChild(output);
    }


    /**
     * Post-process to ensure mermaid diagrams contain only valid SVG and XHTML.
     */
    function cleanMermaidSvg(svg) {
      return svg.replace(RE_VOID_ELEMENT, replaceVoidElement);
    }


    /**
     * A regular expression for all void elements, which may include attributes and
     * a slash.
     *
     * @see https://developer.mozilla.org/en-US/docs/Glossary/Void_element
     *
     * Of these, only `&lt;br&gt;` is generated by Mermaid in place of `\n`,
     * but _any_ &quot;malformed&quot; tag will break the SVG rendering entirely.
     */
    const RE_VOID_ELEMENT =
      /&lt;\s*(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)\s*([^&gt;]*?)\s*&gt;/gi;

    /**
     * Ensure a void element is closed with a slash, preserving any attributes.
     */
    function replaceVoidElement(match, tag, rest) {
      rest = rest.trim();
      if (!rest.endsWith(&#39;/&#39;)) {
        rest = `${rest} /`;
      }
      return `&lt;${tag} ${rest}&gt;`;
    }

    void Promise.all([...diagrams].map(renderOneMarmaid));
  });
&lt;/script&gt;
&lt;style&gt;
  .jp-Mermaid:not(.jp-RenderedMermaid) {
    display: none;
  }

  .jp-RenderedMermaid {
    overflow: auto;
    display: flex;
  }

  .jp-RenderedMermaid.jp-mod-warning {
    width: auto;
    padding: 0.5em;
    margin-top: 0.5em;
    border: var(--jp-border-width) solid var(--jp-warn-color2);
    border-radius: var(--jp-border-radius);
    color: var(--jp-ui-font-color1);
    font-size: var(--jp-ui-font-size1);
    white-space: pre-wrap;
    word-wrap: break-word;
  }

  .jp-RenderedMermaid figure {
    margin: 0;
    overflow: auto;
    max-width: 100%;
  }

  .jp-RenderedMermaid img {
    max-width: 100%;
  }

  .jp-RenderedMermaid-Details &gt; pre {
    margin-top: 1em;
  }

  .jp-RenderedMermaid-Summary {
    color: var(--jp-warn-color2);
  }

  .jp-RenderedMermaid:not(.jp-mod-warning) pre {
    display: none;
  }

  .jp-RenderedMermaid-Summary &gt; pre {
    display: inline-block;
    white-space: normal;
  }
&lt;/style&gt;
&lt;!-- End of mermaid configuration --&gt;&lt;/head&gt;
&lt;body class=&quot;jp-Notebook&quot; data-jp-theme-light=&quot;true&quot; data-jp-theme-name=&quot;JupyterLab Light&quot;&gt;
&lt;main&gt;
&lt;div class=&quot;jp-Cell jp-MarkdownCell jp-Notebook-cell&quot; id=&quot;cell-id=a3800b0d-b9aa-4e04-83cd-74f993a265af&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;
&lt;/div&gt;&lt;div class=&quot;jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput&quot; data-mime-type=&quot;text/markdown&quot;&gt;
&lt;h1 id=&quot;Data-Cleaning-in-Python-Pandas&quot;&gt;Data Cleaning in Python Pandas&lt;a class=&quot;anchor-link&quot; href=&quot;#Data-Cleaning-in-Python-Pandas&quot;&gt;¶&lt;/a&gt;&lt;/h1&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs&quot; id=&quot;cell-id=432a9db1-f5c0-4ec6-9e63-4c9a7f4c3688&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [1]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;&lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=pandas&amp;amp;bbid=872352852572370142&amp;amp;bpid=317473102695597598&quot; target=&quot;_blank&quot;&gt;pandas&lt;/a&gt;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;pd&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs&quot; id=&quot;cell-id=912835f9-7d06-4a62-ad02-483a110a3c44&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [106]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;read_csv&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sa&quot;&gt;r&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;C:\Users\binarystudy\Projects\students_data.csv&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell&quot; id=&quot;cell-id=d60bb590-163b-4a65-bd1a-1a6b768be9ee&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [107]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-Cell-outputWrapper&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-OutputArea jp-Cell-outputArea&quot;&gt;
&lt;div class=&quot;jp-OutputArea-child jp-OutputArea-executeResult&quot;&gt;
&lt;div class=&quot;jp-OutputPrompt jp-OutputArea-prompt&quot;&gt;Out[107]:&lt;/div&gt;
&lt;div class=&quot;jp-RenderedHTMLCommon jp-RenderedHTML jp-OutputArea-output jp-OutputArea-executeResult&quot; data-mime-type=&quot;text/html&quot; tabindex=&quot;0&quot;&gt;
&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
&lt;thead&gt;
&lt;tr style=&quot;text-align: right;&quot;&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;student_id&lt;/th&gt;
&lt;th&gt;name&lt;/th&gt;
&lt;th&gt;age&lt;/th&gt;
&lt;th&gt;gender&lt;/th&gt;
&lt;th&gt;grade&lt;/th&gt;
&lt;th&gt;math_score&lt;/th&gt;
&lt;th&gt;english_score&lt;/th&gt;
&lt;th&gt;science_score&lt;/th&gt;
&lt;th&gt;enrolled_date&lt;/th&gt;
&lt;th&gt;remarks&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;0&lt;/th&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;jane smith&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;75.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;66&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;1&lt;/th&gt;
&lt;td&gt;101&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10th&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;95&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;2&lt;/th&gt;
&lt;td&gt;102&lt;/td&gt;
&lt;td&gt;Chris P.&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;MALE&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;69&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;needs improvement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;3&lt;/th&gt;
&lt;td&gt;103&lt;/td&gt;
&lt;td&gt;jane smith&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;FEMALE&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;4&lt;/th&gt;
&lt;td&gt;104&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;96&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;5&lt;/th&gt;
&lt;td&gt;105&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;83&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;needs improvement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;6&lt;/th&gt;
&lt;td&gt;106&lt;/td&gt;
&lt;td&gt;ali Khan&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;64.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;75&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;7&lt;/th&gt;
&lt;td&gt;107&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;63&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;8&lt;/th&gt;
&lt;td&gt;108&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;80.0&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;9&lt;/th&gt;
&lt;td&gt;109&lt;/td&gt;
&lt;td&gt;Robert Brown&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;97&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;needs improvement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;10&lt;/th&gt;
&lt;td&gt;110&lt;/td&gt;
&lt;td&gt;lucy gray&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;male&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;65.0&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;11&lt;/th&gt;
&lt;td&gt;111&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;FEMALE&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;95&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;12&lt;/th&gt;
&lt;td&gt;112&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;87&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;13&lt;/th&gt;
&lt;td&gt;113&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;98&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;14&lt;/th&gt;
&lt;td&gt;114&lt;/td&gt;
&lt;td&gt;Ali Khan&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;male&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;91&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;15&lt;/th&gt;
&lt;td&gt;115&lt;/td&gt;
&lt;td&gt;Lucy gray&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;65.0&lt;/td&gt;
&lt;td&gt;91&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;16&lt;/th&gt;
&lt;td&gt;116&lt;/td&gt;
&lt;td&gt;Chris P.&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;72&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;17&lt;/th&gt;
&lt;td&gt;117&lt;/td&gt;
&lt;td&gt;Ali Khan&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;male&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;67.0&lt;/td&gt;
&lt;td&gt;74&lt;/td&gt;
&lt;td&gt;81&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;18&lt;/th&gt;
&lt;td&gt;118&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;100.0&lt;/td&gt;
&lt;td&gt;74&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;19&lt;/th&gt;
&lt;td&gt;119&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;MALE&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;73.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;90&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;20&lt;/th&gt;
&lt;td&gt;120&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;21&lt;/th&gt;
&lt;td&gt;121&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;66.0&lt;/td&gt;
&lt;td&gt;72&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;22&lt;/th&gt;
&lt;td&gt;122&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;MALE&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;75.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;66&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;good student&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;23&lt;/th&gt;
&lt;td&gt;123&lt;/td&gt;
&lt;td&gt;jane smith&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;63&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;24&lt;/th&gt;
&lt;td&gt;124&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;MALE&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;91&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;25&lt;/th&gt;
&lt;td&gt;125&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;94.0&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;63&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;26&lt;/th&gt;
&lt;td&gt;126&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10th&lt;/td&gt;
&lt;td&gt;64.0&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;good student&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;27&lt;/th&gt;
&lt;td&gt;127&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;FEMALE&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;76&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;28&lt;/th&gt;
&lt;td&gt;128&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;29&lt;/th&gt;
&lt;td&gt;129&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;td&gt;83&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;30&lt;/th&gt;
&lt;td&gt;129&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;td&gt;83&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell&quot; id=&quot;cell-id=56ab3d9e-138f-4f4d-8416-19c620837e3f&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [108]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;info&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-Cell-outputWrapper&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-OutputArea jp-Cell-outputArea&quot;&gt;
&lt;div class=&quot;jp-OutputArea-child&quot;&gt;
&lt;div class=&quot;jp-OutputPrompt jp-OutputArea-prompt&quot;&gt;&lt;/div&gt;
&lt;div class=&quot;jp-RenderedText jp-OutputArea-output&quot; data-mime-type=&quot;text/plain&quot; tabindex=&quot;0&quot;&gt;
&lt;pre&gt;&amp;lt;class &#39;pandas.core.frame.&lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=pandas+DataFrame&amp;amp;bbid=872352852572370142&amp;amp;bpid=317473102695597598&quot; target=&quot;_blank&quot;&gt;DataFrame&lt;/a&gt;&#39;&amp;gt;
&lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=pandas+RangeIndex&amp;amp;bbid=872352852572370142&amp;amp;bpid=317473102695597598&quot; target=&quot;_blank&quot;&gt;RangeIndex&lt;/a&gt;: 31 entries, 0 to 30
Data columns (total 10 columns):
 #   Column         Non-Null Count  Dtype  
---  ------         --------------  -----  
 0   student_id     31 non-null     int64  
 1   name           31 non-null     object 
 2   age            28 non-null     float64
 3   gender         31 non-null     object 
 4   grade          31 non-null     object 
 5   math_score     13 non-null     float64
 6   english_score  23 non-null     object 
 7   science_score  31 non-null     int64  
 8   enrolled_date  31 non-null     object 
 9   remarks        31 non-null     object 
dtypes: float64(2), int64(2), object(6)
memory usage: 2.6+ KB
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell&quot; id=&quot;cell-id=a5f0a572-2bc3-449f-a642-ba8e432875ef&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [109]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;duplicated&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-Cell-outputWrapper&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-OutputArea jp-Cell-outputArea&quot;&gt;
&lt;div class=&quot;jp-OutputArea-child jp-OutputArea-executeResult&quot;&gt;
&lt;div class=&quot;jp-OutputPrompt jp-OutputArea-prompt&quot;&gt;Out[109]:&lt;/div&gt;
&lt;div class=&quot;jp-RenderedText jp-OutputArea-output jp-OutputArea-executeResult&quot; data-mime-type=&quot;text/plain&quot; tabindex=&quot;0&quot;&gt;
&lt;pre&gt;0     False
1     False
2     False
3     False
4     False
5     False
6     False
7     False
8     False
9     False
10    False
11    False
12    False
13    False
14    False
15    False
16    False
17    False
18    False
19    False
20    False
21    False
22    False
23    False
24    False
25    False
26    False
27    False
28    False
29    False
30     True
dtype: bool&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs&quot; id=&quot;cell-id=5655a9eb-fcb2-4b84-b8d7-920c3246489b&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [110]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;drop_duplicates&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell&quot; id=&quot;cell-id=836736a6-1aa7-4b90-bbca-56e1abf967b8&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [111]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-Cell-outputWrapper&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-OutputArea jp-Cell-outputArea&quot;&gt;
&lt;div class=&quot;jp-OutputArea-child jp-OutputArea-executeResult&quot;&gt;
&lt;div class=&quot;jp-OutputPrompt jp-OutputArea-prompt&quot;&gt;Out[111]:&lt;/div&gt;
&lt;div class=&quot;jp-RenderedHTMLCommon jp-RenderedHTML jp-OutputArea-output jp-OutputArea-executeResult&quot; data-mime-type=&quot;text/html&quot; tabindex=&quot;0&quot;&gt;
&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
&lt;thead&gt;
&lt;tr style=&quot;text-align: right;&quot;&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;student_id&lt;/th&gt;
&lt;th&gt;name&lt;/th&gt;
&lt;th&gt;age&lt;/th&gt;
&lt;th&gt;gender&lt;/th&gt;
&lt;th&gt;grade&lt;/th&gt;
&lt;th&gt;math_score&lt;/th&gt;
&lt;th&gt;english_score&lt;/th&gt;
&lt;th&gt;science_score&lt;/th&gt;
&lt;th&gt;enrolled_date&lt;/th&gt;
&lt;th&gt;remarks&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;0&lt;/th&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;jane smith&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;75.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;66&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;1&lt;/th&gt;
&lt;td&gt;101&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10th&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;95&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;2&lt;/th&gt;
&lt;td&gt;102&lt;/td&gt;
&lt;td&gt;Chris P.&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;MALE&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;69&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;needs improvement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;3&lt;/th&gt;
&lt;td&gt;103&lt;/td&gt;
&lt;td&gt;jane smith&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;FEMALE&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;4&lt;/th&gt;
&lt;td&gt;104&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;96&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;5&lt;/th&gt;
&lt;td&gt;105&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;83&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;needs improvement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;6&lt;/th&gt;
&lt;td&gt;106&lt;/td&gt;
&lt;td&gt;ali Khan&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;64.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;75&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;7&lt;/th&gt;
&lt;td&gt;107&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;63&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;8&lt;/th&gt;
&lt;td&gt;108&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;80.0&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;9&lt;/th&gt;
&lt;td&gt;109&lt;/td&gt;
&lt;td&gt;Robert Brown&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;97&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;needs improvement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;10&lt;/th&gt;
&lt;td&gt;110&lt;/td&gt;
&lt;td&gt;lucy gray&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;male&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;65.0&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;11&lt;/th&gt;
&lt;td&gt;111&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;FEMALE&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;95&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;12&lt;/th&gt;
&lt;td&gt;112&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;87&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;13&lt;/th&gt;
&lt;td&gt;113&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;98&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;14&lt;/th&gt;
&lt;td&gt;114&lt;/td&gt;
&lt;td&gt;Ali Khan&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;male&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;91&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;15&lt;/th&gt;
&lt;td&gt;115&lt;/td&gt;
&lt;td&gt;Lucy gray&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;65.0&lt;/td&gt;
&lt;td&gt;91&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;16&lt;/th&gt;
&lt;td&gt;116&lt;/td&gt;
&lt;td&gt;Chris P.&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;72&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;17&lt;/th&gt;
&lt;td&gt;117&lt;/td&gt;
&lt;td&gt;Ali Khan&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;male&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;67.0&lt;/td&gt;
&lt;td&gt;74&lt;/td&gt;
&lt;td&gt;81&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;18&lt;/th&gt;
&lt;td&gt;118&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;100.0&lt;/td&gt;
&lt;td&gt;74&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;19&lt;/th&gt;
&lt;td&gt;119&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;MALE&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;73.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;90&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;20&lt;/th&gt;
&lt;td&gt;120&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;21&lt;/th&gt;
&lt;td&gt;121&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;66.0&lt;/td&gt;
&lt;td&gt;72&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;22&lt;/th&gt;
&lt;td&gt;122&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;MALE&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;75.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;66&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;good student&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;23&lt;/th&gt;
&lt;td&gt;123&lt;/td&gt;
&lt;td&gt;jane smith&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;63&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;24&lt;/th&gt;
&lt;td&gt;124&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;MALE&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;91&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;25&lt;/th&gt;
&lt;td&gt;125&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;94.0&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;63&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;26&lt;/th&gt;
&lt;td&gt;126&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10th&lt;/td&gt;
&lt;td&gt;64.0&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;good student&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;27&lt;/th&gt;
&lt;td&gt;127&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;FEMALE&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;76&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;28&lt;/th&gt;
&lt;td&gt;128&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;29&lt;/th&gt;
&lt;td&gt;129&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;td&gt;83&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs&quot; id=&quot;cell-id=696b45aa-18c0-4d58-bc18-bf2ea8295e0f&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [112]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[:,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;name&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;name&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;lower&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell&quot; id=&quot;cell-id=2503470c-aedf-43b5-941f-1db412230fbf&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [113]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-Cell-outputWrapper&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-OutputArea jp-Cell-outputArea&quot;&gt;
&lt;div class=&quot;jp-OutputArea-child jp-OutputArea-executeResult&quot;&gt;
&lt;div class=&quot;jp-OutputPrompt jp-OutputArea-prompt&quot;&gt;Out[113]:&lt;/div&gt;
&lt;div class=&quot;jp-RenderedHTMLCommon jp-RenderedHTML jp-OutputArea-output jp-OutputArea-executeResult&quot; data-mime-type=&quot;text/html&quot; tabindex=&quot;0&quot;&gt;
&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
&lt;thead&gt;
&lt;tr style=&quot;text-align: right;&quot;&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;student_id&lt;/th&gt;
&lt;th&gt;name&lt;/th&gt;
&lt;th&gt;age&lt;/th&gt;
&lt;th&gt;gender&lt;/th&gt;
&lt;th&gt;grade&lt;/th&gt;
&lt;th&gt;math_score&lt;/th&gt;
&lt;th&gt;english_score&lt;/th&gt;
&lt;th&gt;science_score&lt;/th&gt;
&lt;th&gt;enrolled_date&lt;/th&gt;
&lt;th&gt;remarks&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;0&lt;/th&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;Jane Smith&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;75.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;66&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;1&lt;/th&gt;
&lt;td&gt;101&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10th&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;95&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;2&lt;/th&gt;
&lt;td&gt;102&lt;/td&gt;
&lt;td&gt;Chris P.&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;MALE&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;69&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;needs improvement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;3&lt;/th&gt;
&lt;td&gt;103&lt;/td&gt;
&lt;td&gt;Jane Smith&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;FEMALE&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;4&lt;/th&gt;
&lt;td&gt;104&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;96&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;5&lt;/th&gt;
&lt;td&gt;105&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;83&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;needs improvement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;6&lt;/th&gt;
&lt;td&gt;106&lt;/td&gt;
&lt;td&gt;Ali Khan&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;64.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;75&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;7&lt;/th&gt;
&lt;td&gt;107&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;63&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;8&lt;/th&gt;
&lt;td&gt;108&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;80.0&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;9&lt;/th&gt;
&lt;td&gt;109&lt;/td&gt;
&lt;td&gt;Robert Brown&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;97&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;needs improvement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;10&lt;/th&gt;
&lt;td&gt;110&lt;/td&gt;
&lt;td&gt;Lucy Gray&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;male&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;65.0&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;11&lt;/th&gt;
&lt;td&gt;111&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;FEMALE&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;95&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;12&lt;/th&gt;
&lt;td&gt;112&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;87&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;13&lt;/th&gt;
&lt;td&gt;113&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;98&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;14&lt;/th&gt;
&lt;td&gt;114&lt;/td&gt;
&lt;td&gt;Ali Khan&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;male&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;91&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;15&lt;/th&gt;
&lt;td&gt;115&lt;/td&gt;
&lt;td&gt;Lucy Gray&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;65.0&lt;/td&gt;
&lt;td&gt;91&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;16&lt;/th&gt;
&lt;td&gt;116&lt;/td&gt;
&lt;td&gt;Chris P.&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;72&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;17&lt;/th&gt;
&lt;td&gt;117&lt;/td&gt;
&lt;td&gt;Ali Khan&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;male&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;67.0&lt;/td&gt;
&lt;td&gt;74&lt;/td&gt;
&lt;td&gt;81&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;18&lt;/th&gt;
&lt;td&gt;118&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;100.0&lt;/td&gt;
&lt;td&gt;74&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;19&lt;/th&gt;
&lt;td&gt;119&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;MALE&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;73.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;90&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;20&lt;/th&gt;
&lt;td&gt;120&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;21&lt;/th&gt;
&lt;td&gt;121&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;66.0&lt;/td&gt;
&lt;td&gt;72&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;22&lt;/th&gt;
&lt;td&gt;122&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;MALE&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;75.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;66&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;good student&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;23&lt;/th&gt;
&lt;td&gt;123&lt;/td&gt;
&lt;td&gt;Jane Smith&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;63&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;24&lt;/th&gt;
&lt;td&gt;124&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;MALE&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;91&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;25&lt;/th&gt;
&lt;td&gt;125&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;94.0&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;63&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;26&lt;/th&gt;
&lt;td&gt;126&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10th&lt;/td&gt;
&lt;td&gt;64.0&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;good student&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;27&lt;/th&gt;
&lt;td&gt;127&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;FEMALE&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;76&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;28&lt;/th&gt;
&lt;td&gt;128&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;29&lt;/th&gt;
&lt;td&gt;129&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;td&gt;83&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs&quot; id=&quot;cell-id=a1af6ec3-a4ba-435f-ac5b-39a63678e171&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [114]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mean_age&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;age&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mean&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;round&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs&quot; id=&quot;cell-id=94b77067-0e3e-4d02-aaaf-3fa73f551923&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [115]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[:,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;age&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;age&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fillna&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mean_age&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell&quot; id=&quot;cell-id=45c97b75-efc3-4bc6-9860-97e0c7bac8da&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [116]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-Cell-outputWrapper&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-OutputArea jp-Cell-outputArea&quot;&gt;
&lt;div class=&quot;jp-OutputArea-child jp-OutputArea-executeResult&quot;&gt;
&lt;div class=&quot;jp-OutputPrompt jp-OutputArea-prompt&quot;&gt;Out[116]:&lt;/div&gt;
&lt;div class=&quot;jp-RenderedHTMLCommon jp-RenderedHTML jp-OutputArea-output jp-OutputArea-executeResult&quot; data-mime-type=&quot;text/html&quot; tabindex=&quot;0&quot;&gt;
&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
&lt;thead&gt;
&lt;tr style=&quot;text-align: right;&quot;&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;student_id&lt;/th&gt;
&lt;th&gt;name&lt;/th&gt;
&lt;th&gt;age&lt;/th&gt;
&lt;th&gt;gender&lt;/th&gt;
&lt;th&gt;grade&lt;/th&gt;
&lt;th&gt;math_score&lt;/th&gt;
&lt;th&gt;english_score&lt;/th&gt;
&lt;th&gt;science_score&lt;/th&gt;
&lt;th&gt;enrolled_date&lt;/th&gt;
&lt;th&gt;remarks&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;0&lt;/th&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;Jane Smith&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;75.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;66&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;1&lt;/th&gt;
&lt;td&gt;101&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10th&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;95&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;2&lt;/th&gt;
&lt;td&gt;102&lt;/td&gt;
&lt;td&gt;Chris P.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;MALE&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;69&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;needs improvement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;3&lt;/th&gt;
&lt;td&gt;103&lt;/td&gt;
&lt;td&gt;Jane Smith&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;FEMALE&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;4&lt;/th&gt;
&lt;td&gt;104&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;96&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;5&lt;/th&gt;
&lt;td&gt;105&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;83&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;needs improvement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;6&lt;/th&gt;
&lt;td&gt;106&lt;/td&gt;
&lt;td&gt;Ali Khan&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;64.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;75&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;7&lt;/th&gt;
&lt;td&gt;107&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;63&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;8&lt;/th&gt;
&lt;td&gt;108&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;80.0&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;9&lt;/th&gt;
&lt;td&gt;109&lt;/td&gt;
&lt;td&gt;Robert Brown&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;97&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;needs improvement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;10&lt;/th&gt;
&lt;td&gt;110&lt;/td&gt;
&lt;td&gt;Lucy Gray&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;male&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;65.0&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;11&lt;/th&gt;
&lt;td&gt;111&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;FEMALE&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;95&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;12&lt;/th&gt;
&lt;td&gt;112&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;87&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;13&lt;/th&gt;
&lt;td&gt;113&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;98&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;14&lt;/th&gt;
&lt;td&gt;114&lt;/td&gt;
&lt;td&gt;Ali Khan&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;male&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;91&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;15&lt;/th&gt;
&lt;td&gt;115&lt;/td&gt;
&lt;td&gt;Lucy Gray&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;65.0&lt;/td&gt;
&lt;td&gt;91&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;16&lt;/th&gt;
&lt;td&gt;116&lt;/td&gt;
&lt;td&gt;Chris P.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;72&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;17&lt;/th&gt;
&lt;td&gt;117&lt;/td&gt;
&lt;td&gt;Ali Khan&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;male&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;67.0&lt;/td&gt;
&lt;td&gt;74&lt;/td&gt;
&lt;td&gt;81&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;18&lt;/th&gt;
&lt;td&gt;118&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;100.0&lt;/td&gt;
&lt;td&gt;74&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;19&lt;/th&gt;
&lt;td&gt;119&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;MALE&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;73.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;90&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;20&lt;/th&gt;
&lt;td&gt;120&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;21&lt;/th&gt;
&lt;td&gt;121&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;66.0&lt;/td&gt;
&lt;td&gt;72&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;22&lt;/th&gt;
&lt;td&gt;122&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;MALE&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;75.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;66&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;good student&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;23&lt;/th&gt;
&lt;td&gt;123&lt;/td&gt;
&lt;td&gt;Jane Smith&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;63&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;24&lt;/th&gt;
&lt;td&gt;124&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;MALE&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;91&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;25&lt;/th&gt;
&lt;td&gt;125&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;94.0&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;63&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;26&lt;/th&gt;
&lt;td&gt;126&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10th&lt;/td&gt;
&lt;td&gt;64.0&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;good student&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;27&lt;/th&gt;
&lt;td&gt;127&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;FEMALE&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;76&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;28&lt;/th&gt;
&lt;td&gt;128&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;29&lt;/th&gt;
&lt;td&gt;129&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;td&gt;83&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs&quot; id=&quot;cell-id=db54499a-65e2-4dbe-abed-ebdf349ed5b1&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [117]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[:,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;gender&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;gender&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;lower&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell&quot; id=&quot;cell-id=10114321-0283-4ad4-8626-e63d19e64995&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [118]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-Cell-outputWrapper&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-OutputArea jp-Cell-outputArea&quot;&gt;
&lt;div class=&quot;jp-OutputArea-child jp-OutputArea-executeResult&quot;&gt;
&lt;div class=&quot;jp-OutputPrompt jp-OutputArea-prompt&quot;&gt;Out[118]:&lt;/div&gt;
&lt;div class=&quot;jp-RenderedHTMLCommon jp-RenderedHTML jp-OutputArea-output jp-OutputArea-executeResult&quot; data-mime-type=&quot;text/html&quot; tabindex=&quot;0&quot;&gt;
&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
&lt;thead&gt;
&lt;tr style=&quot;text-align: right;&quot;&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;student_id&lt;/th&gt;
&lt;th&gt;name&lt;/th&gt;
&lt;th&gt;age&lt;/th&gt;
&lt;th&gt;gender&lt;/th&gt;
&lt;th&gt;grade&lt;/th&gt;
&lt;th&gt;math_score&lt;/th&gt;
&lt;th&gt;english_score&lt;/th&gt;
&lt;th&gt;science_score&lt;/th&gt;
&lt;th&gt;enrolled_date&lt;/th&gt;
&lt;th&gt;remarks&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;0&lt;/th&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;Jane Smith&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;75.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;66&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;1&lt;/th&gt;
&lt;td&gt;101&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10th&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;95&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;2&lt;/th&gt;
&lt;td&gt;102&lt;/td&gt;
&lt;td&gt;Chris P.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;69&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;needs improvement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;3&lt;/th&gt;
&lt;td&gt;103&lt;/td&gt;
&lt;td&gt;Jane Smith&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;4&lt;/th&gt;
&lt;td&gt;104&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;96&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;5&lt;/th&gt;
&lt;td&gt;105&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;83&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;needs improvement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;6&lt;/th&gt;
&lt;td&gt;106&lt;/td&gt;
&lt;td&gt;Ali Khan&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;64.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;75&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;7&lt;/th&gt;
&lt;td&gt;107&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;63&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;8&lt;/th&gt;
&lt;td&gt;108&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;80.0&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;9&lt;/th&gt;
&lt;td&gt;109&lt;/td&gt;
&lt;td&gt;Robert Brown&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;97&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;needs improvement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;10&lt;/th&gt;
&lt;td&gt;110&lt;/td&gt;
&lt;td&gt;Lucy Gray&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;65.0&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;11&lt;/th&gt;
&lt;td&gt;111&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;95&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;12&lt;/th&gt;
&lt;td&gt;112&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;87&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;13&lt;/th&gt;
&lt;td&gt;113&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;98&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;14&lt;/th&gt;
&lt;td&gt;114&lt;/td&gt;
&lt;td&gt;Ali Khan&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;91&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;15&lt;/th&gt;
&lt;td&gt;115&lt;/td&gt;
&lt;td&gt;Lucy Gray&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;65.0&lt;/td&gt;
&lt;td&gt;91&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;16&lt;/th&gt;
&lt;td&gt;116&lt;/td&gt;
&lt;td&gt;Chris P.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;72&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;17&lt;/th&gt;
&lt;td&gt;117&lt;/td&gt;
&lt;td&gt;Ali Khan&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;67.0&lt;/td&gt;
&lt;td&gt;74&lt;/td&gt;
&lt;td&gt;81&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;18&lt;/th&gt;
&lt;td&gt;118&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;100.0&lt;/td&gt;
&lt;td&gt;74&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;19&lt;/th&gt;
&lt;td&gt;119&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;73.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;90&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;20&lt;/th&gt;
&lt;td&gt;120&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;21&lt;/th&gt;
&lt;td&gt;121&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;66.0&lt;/td&gt;
&lt;td&gt;72&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;22&lt;/th&gt;
&lt;td&gt;122&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;75.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;66&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;good student&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;23&lt;/th&gt;
&lt;td&gt;123&lt;/td&gt;
&lt;td&gt;Jane Smith&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;63&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;24&lt;/th&gt;
&lt;td&gt;124&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11th&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;91&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;25&lt;/th&gt;
&lt;td&gt;125&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;94.0&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;63&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;26&lt;/th&gt;
&lt;td&gt;126&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10th&lt;/td&gt;
&lt;td&gt;64.0&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;good student&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;27&lt;/th&gt;
&lt;td&gt;127&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;76&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;28&lt;/th&gt;
&lt;td&gt;128&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;29&lt;/th&gt;
&lt;td&gt;129&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;td&gt;83&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell&quot; id=&quot;cell-id=7def70cc-4583-488e-ac99-b4985f5e7727&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [119]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;grade&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;unique&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-Cell-outputWrapper&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-OutputArea jp-Cell-outputArea&quot;&gt;
&lt;div class=&quot;jp-OutputArea-child jp-OutputArea-executeResult&quot;&gt;
&lt;div class=&quot;jp-OutputPrompt jp-OutputArea-prompt&quot;&gt;Out[119]:&lt;/div&gt;
&lt;div class=&quot;jp-RenderedText jp-OutputArea-output jp-OutputArea-executeResult&quot; data-mime-type=&quot;text/plain&quot; tabindex=&quot;0&quot;&gt;
&lt;pre&gt;array([&#39;11&#39;, &#39;10th&#39;, &#39;10&#39;, &#39;12&#39;, &#39;11th&#39;], dtype=object)&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs&quot; id=&quot;cell-id=fec64111-6ce9-4a8a-9edc-533d70e008c3&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [120]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[:,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;grade&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;  &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;grade&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;({&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;10th&#39;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;10&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;11th&#39;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;11&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;})&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell&quot; id=&quot;cell-id=09bcf994-960c-4a49-8a37-33628ced9415&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [121]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-Cell-outputWrapper&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-OutputArea jp-Cell-outputArea&quot;&gt;
&lt;div class=&quot;jp-OutputArea-child jp-OutputArea-executeResult&quot;&gt;
&lt;div class=&quot;jp-OutputPrompt jp-OutputArea-prompt&quot;&gt;Out[121]:&lt;/div&gt;
&lt;div class=&quot;jp-RenderedHTMLCommon jp-RenderedHTML jp-OutputArea-output jp-OutputArea-executeResult&quot; data-mime-type=&quot;text/html&quot; tabindex=&quot;0&quot;&gt;
&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
&lt;thead&gt;
&lt;tr style=&quot;text-align: right;&quot;&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;student_id&lt;/th&gt;
&lt;th&gt;name&lt;/th&gt;
&lt;th&gt;age&lt;/th&gt;
&lt;th&gt;gender&lt;/th&gt;
&lt;th&gt;grade&lt;/th&gt;
&lt;th&gt;math_score&lt;/th&gt;
&lt;th&gt;english_score&lt;/th&gt;
&lt;th&gt;science_score&lt;/th&gt;
&lt;th&gt;enrolled_date&lt;/th&gt;
&lt;th&gt;remarks&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;0&lt;/th&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;Jane Smith&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;75.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;66&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;1&lt;/th&gt;
&lt;td&gt;101&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;95&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;2&lt;/th&gt;
&lt;td&gt;102&lt;/td&gt;
&lt;td&gt;Chris P.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;69&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;needs improvement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;3&lt;/th&gt;
&lt;td&gt;103&lt;/td&gt;
&lt;td&gt;Jane Smith&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;4&lt;/th&gt;
&lt;td&gt;104&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;96&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;5&lt;/th&gt;
&lt;td&gt;105&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;83&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;needs improvement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;6&lt;/th&gt;
&lt;td&gt;106&lt;/td&gt;
&lt;td&gt;Ali Khan&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;64.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;75&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;7&lt;/th&gt;
&lt;td&gt;107&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;63&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;8&lt;/th&gt;
&lt;td&gt;108&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;80.0&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;9&lt;/th&gt;
&lt;td&gt;109&lt;/td&gt;
&lt;td&gt;Robert Brown&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;97&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;needs improvement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;10&lt;/th&gt;
&lt;td&gt;110&lt;/td&gt;
&lt;td&gt;Lucy Gray&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;65.0&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;11&lt;/th&gt;
&lt;td&gt;111&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;95&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;12&lt;/th&gt;
&lt;td&gt;112&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;87&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;13&lt;/th&gt;
&lt;td&gt;113&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;98&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;14&lt;/th&gt;
&lt;td&gt;114&lt;/td&gt;
&lt;td&gt;Ali Khan&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;91&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;15&lt;/th&gt;
&lt;td&gt;115&lt;/td&gt;
&lt;td&gt;Lucy Gray&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;65.0&lt;/td&gt;
&lt;td&gt;91&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;16&lt;/th&gt;
&lt;td&gt;116&lt;/td&gt;
&lt;td&gt;Chris P.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;72&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;17&lt;/th&gt;
&lt;td&gt;117&lt;/td&gt;
&lt;td&gt;Ali Khan&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;67.0&lt;/td&gt;
&lt;td&gt;74&lt;/td&gt;
&lt;td&gt;81&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;18&lt;/th&gt;
&lt;td&gt;118&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;100.0&lt;/td&gt;
&lt;td&gt;74&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;19&lt;/th&gt;
&lt;td&gt;119&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;73.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;90&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;20&lt;/th&gt;
&lt;td&gt;120&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;21&lt;/th&gt;
&lt;td&gt;121&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;66.0&lt;/td&gt;
&lt;td&gt;72&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;22&lt;/th&gt;
&lt;td&gt;122&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;75.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;66&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;good student&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;23&lt;/th&gt;
&lt;td&gt;123&lt;/td&gt;
&lt;td&gt;Jane Smith&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;63&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;24&lt;/th&gt;
&lt;td&gt;124&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;91&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;25&lt;/th&gt;
&lt;td&gt;125&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;94.0&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;63&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;26&lt;/th&gt;
&lt;td&gt;126&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;64.0&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;good student&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;27&lt;/th&gt;
&lt;td&gt;127&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;76&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;28&lt;/th&gt;
&lt;td&gt;128&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;29&lt;/th&gt;
&lt;td&gt;129&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;td&gt;83&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell&quot; id=&quot;cell-id=d46e138d-2919-430c-a89d-01033e02c4d5&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [122]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mean_math&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;math_score&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mean&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;mean_math&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-Cell-outputWrapper&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-OutputArea jp-Cell-outputArea&quot;&gt;
&lt;div class=&quot;jp-OutputArea-child jp-OutputArea-executeResult&quot;&gt;
&lt;div class=&quot;jp-OutputPrompt jp-OutputArea-prompt&quot;&gt;Out[122]:&lt;/div&gt;
&lt;div class=&quot;jp-RenderedText jp-OutputArea-output jp-OutputArea-executeResult&quot; data-mime-type=&quot;text/plain&quot; tabindex=&quot;0&quot;&gt;
&lt;pre&gt;&lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=numpy+float64&amp;amp;bbid=872352852572370142&amp;amp;bpid=317473102695597598&quot; target=&quot;_blank&quot;&gt;np.float64&lt;/a&gt;(74.0)&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs&quot; id=&quot;cell-id=6ce8b328-8eeb-4528-94b4-a1f2e0c04780&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [123]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[:,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;math_score&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;math_score&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fillna&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mean_math&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell&quot; id=&quot;cell-id=7afa2a1c-cdc0-4d58-80fb-96eb513ddcde&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [124]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-Cell-outputWrapper&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-OutputArea jp-Cell-outputArea&quot;&gt;
&lt;div class=&quot;jp-OutputArea-child jp-OutputArea-executeResult&quot;&gt;
&lt;div class=&quot;jp-OutputPrompt jp-OutputArea-prompt&quot;&gt;Out[124]:&lt;/div&gt;
&lt;div class=&quot;jp-RenderedHTMLCommon jp-RenderedHTML jp-OutputArea-output jp-OutputArea-executeResult&quot; data-mime-type=&quot;text/html&quot; tabindex=&quot;0&quot;&gt;
&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
&lt;thead&gt;
&lt;tr style=&quot;text-align: right;&quot;&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;student_id&lt;/th&gt;
&lt;th&gt;name&lt;/th&gt;
&lt;th&gt;age&lt;/th&gt;
&lt;th&gt;gender&lt;/th&gt;
&lt;th&gt;grade&lt;/th&gt;
&lt;th&gt;math_score&lt;/th&gt;
&lt;th&gt;english_score&lt;/th&gt;
&lt;th&gt;science_score&lt;/th&gt;
&lt;th&gt;enrolled_date&lt;/th&gt;
&lt;th&gt;remarks&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;0&lt;/th&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;Jane Smith&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;75.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;66&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;1&lt;/th&gt;
&lt;td&gt;101&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;95&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;2&lt;/th&gt;
&lt;td&gt;102&lt;/td&gt;
&lt;td&gt;Chris P.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;69&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;needs improvement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;3&lt;/th&gt;
&lt;td&gt;103&lt;/td&gt;
&lt;td&gt;Jane Smith&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;4&lt;/th&gt;
&lt;td&gt;104&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;96&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;5&lt;/th&gt;
&lt;td&gt;105&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;83&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;needs improvement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;6&lt;/th&gt;
&lt;td&gt;106&lt;/td&gt;
&lt;td&gt;Ali Khan&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;64.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;75&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;7&lt;/th&gt;
&lt;td&gt;107&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;63&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;8&lt;/th&gt;
&lt;td&gt;108&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;80.0&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;9&lt;/th&gt;
&lt;td&gt;109&lt;/td&gt;
&lt;td&gt;Robert Brown&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;97&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;needs improvement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;10&lt;/th&gt;
&lt;td&gt;110&lt;/td&gt;
&lt;td&gt;Lucy Gray&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;65.0&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;11&lt;/th&gt;
&lt;td&gt;111&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;95&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;12&lt;/th&gt;
&lt;td&gt;112&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;87&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;13&lt;/th&gt;
&lt;td&gt;113&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;98&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;14&lt;/th&gt;
&lt;td&gt;114&lt;/td&gt;
&lt;td&gt;Ali Khan&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;91&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;15&lt;/th&gt;
&lt;td&gt;115&lt;/td&gt;
&lt;td&gt;Lucy Gray&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;65.0&lt;/td&gt;
&lt;td&gt;91&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;16&lt;/th&gt;
&lt;td&gt;116&lt;/td&gt;
&lt;td&gt;Chris P.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;72&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;17&lt;/th&gt;
&lt;td&gt;117&lt;/td&gt;
&lt;td&gt;Ali Khan&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;67.0&lt;/td&gt;
&lt;td&gt;74&lt;/td&gt;
&lt;td&gt;81&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;18&lt;/th&gt;
&lt;td&gt;118&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;100.0&lt;/td&gt;
&lt;td&gt;74&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;19&lt;/th&gt;
&lt;td&gt;119&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;73.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;90&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;20&lt;/th&gt;
&lt;td&gt;120&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;21&lt;/th&gt;
&lt;td&gt;121&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;66.0&lt;/td&gt;
&lt;td&gt;72&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;22&lt;/th&gt;
&lt;td&gt;122&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;75.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;66&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;good student&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;23&lt;/th&gt;
&lt;td&gt;123&lt;/td&gt;
&lt;td&gt;Jane Smith&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;63&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;24&lt;/th&gt;
&lt;td&gt;124&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;91&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;25&lt;/th&gt;
&lt;td&gt;125&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;94.0&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;63&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;26&lt;/th&gt;
&lt;td&gt;126&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;64.0&lt;/td&gt;
&lt;td&gt;missing&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;good student&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;27&lt;/th&gt;
&lt;td&gt;127&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;76&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;28&lt;/th&gt;
&lt;td&gt;128&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;29&lt;/th&gt;
&lt;td&gt;129&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;td&gt;83&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell&quot; id=&quot;cell-id=4c6ce3a6-11d3-49ba-afa0-048a100cf284&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [125]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;english_score&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-Cell-outputWrapper&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-OutputArea jp-Cell-outputArea&quot;&gt;
&lt;div class=&quot;jp-OutputArea-child jp-OutputArea-executeResult&quot;&gt;
&lt;div class=&quot;jp-OutputPrompt jp-OutputArea-prompt&quot;&gt;Out[125]:&lt;/div&gt;
&lt;div class=&quot;jp-RenderedText jp-OutputArea-output jp-OutputArea-executeResult&quot; data-mime-type=&quot;text/plain&quot; tabindex=&quot;0&quot;&gt;
&lt;pre&gt;0         NaN
1          95
2     missing
3     missing
4          96
5         NaN
6         NaN
7          63
8     missing
9     missing
10         67
11    missing
12         87
13        NaN
14         91
15         91
16        NaN
17         74
18         74
19        NaN
20    missing
21         72
22        NaN
23    missing
24        NaN
25         80
26    missing
27         76
28         64
29         64
Name: english_score, dtype: object&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs&quot; id=&quot;cell-id=52d852aa-0ca3-4e0c-92b2-5ef7eb48f852&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [126]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[:,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;english_score&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;to_numeric&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;english_score&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;errors&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;coerce&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell&quot; id=&quot;cell-id=a3a1d59a-0d4a-4238-9926-dd0ca58207d9&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [127]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-Cell-outputWrapper&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-OutputArea jp-Cell-outputArea&quot;&gt;
&lt;div class=&quot;jp-OutputArea-child jp-OutputArea-executeResult&quot;&gt;
&lt;div class=&quot;jp-OutputPrompt jp-OutputArea-prompt&quot;&gt;Out[127]:&lt;/div&gt;
&lt;div class=&quot;jp-RenderedHTMLCommon jp-RenderedHTML jp-OutputArea-output jp-OutputArea-executeResult&quot; data-mime-type=&quot;text/html&quot; tabindex=&quot;0&quot;&gt;
&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
&lt;thead&gt;
&lt;tr style=&quot;text-align: right;&quot;&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;student_id&lt;/th&gt;
&lt;th&gt;name&lt;/th&gt;
&lt;th&gt;age&lt;/th&gt;
&lt;th&gt;gender&lt;/th&gt;
&lt;th&gt;grade&lt;/th&gt;
&lt;th&gt;math_score&lt;/th&gt;
&lt;th&gt;english_score&lt;/th&gt;
&lt;th&gt;science_score&lt;/th&gt;
&lt;th&gt;enrolled_date&lt;/th&gt;
&lt;th&gt;remarks&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;0&lt;/th&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;Jane Smith&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;75.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;66&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;1&lt;/th&gt;
&lt;td&gt;101&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;95.0&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;2&lt;/th&gt;
&lt;td&gt;102&lt;/td&gt;
&lt;td&gt;Chris P.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;69&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;needs improvement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;3&lt;/th&gt;
&lt;td&gt;103&lt;/td&gt;
&lt;td&gt;Jane Smith&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;4&lt;/th&gt;
&lt;td&gt;104&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;96.0&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;5&lt;/th&gt;
&lt;td&gt;105&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;83&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;needs improvement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;6&lt;/th&gt;
&lt;td&gt;106&lt;/td&gt;
&lt;td&gt;Ali Khan&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;64.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;75&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;7&lt;/th&gt;
&lt;td&gt;107&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;63.0&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;8&lt;/th&gt;
&lt;td&gt;108&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;80.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;9&lt;/th&gt;
&lt;td&gt;109&lt;/td&gt;
&lt;td&gt;Robert Brown&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;97&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;needs improvement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;10&lt;/th&gt;
&lt;td&gt;110&lt;/td&gt;
&lt;td&gt;Lucy Gray&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;65.0&lt;/td&gt;
&lt;td&gt;67.0&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;11&lt;/th&gt;
&lt;td&gt;111&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;95&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;12&lt;/th&gt;
&lt;td&gt;112&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;87.0&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;13&lt;/th&gt;
&lt;td&gt;113&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;98&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;14&lt;/th&gt;
&lt;td&gt;114&lt;/td&gt;
&lt;td&gt;Ali Khan&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;91.0&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;15&lt;/th&gt;
&lt;td&gt;115&lt;/td&gt;
&lt;td&gt;Lucy Gray&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;65.0&lt;/td&gt;
&lt;td&gt;91.0&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;16&lt;/th&gt;
&lt;td&gt;116&lt;/td&gt;
&lt;td&gt;Chris P.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;72&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;17&lt;/th&gt;
&lt;td&gt;117&lt;/td&gt;
&lt;td&gt;Ali Khan&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;67.0&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;81&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;18&lt;/th&gt;
&lt;td&gt;118&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;100.0&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;19&lt;/th&gt;
&lt;td&gt;119&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;73.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;90&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;20&lt;/th&gt;
&lt;td&gt;120&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;21&lt;/th&gt;
&lt;td&gt;121&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;66.0&lt;/td&gt;
&lt;td&gt;72.0&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;22&lt;/th&gt;
&lt;td&gt;122&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;75.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;66&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;good student&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;23&lt;/th&gt;
&lt;td&gt;123&lt;/td&gt;
&lt;td&gt;Jane Smith&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;63&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;24&lt;/th&gt;
&lt;td&gt;124&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;91&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;25&lt;/th&gt;
&lt;td&gt;125&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;94.0&lt;/td&gt;
&lt;td&gt;80.0&lt;/td&gt;
&lt;td&gt;63&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;26&lt;/th&gt;
&lt;td&gt;126&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;64.0&lt;/td&gt;
&lt;td&gt;NaN&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;good student&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;27&lt;/th&gt;
&lt;td&gt;127&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;76.0&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;28&lt;/th&gt;
&lt;td&gt;128&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;64.0&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;29&lt;/th&gt;
&lt;td&gt;129&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;64.0&lt;/td&gt;
&lt;td&gt;83&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell&quot; id=&quot;cell-id=56612795-cdb2-44fa-989e-de6b35c03734&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [129]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[:,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;english_score&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;english_score&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fillna&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;english_score&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mean&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;round&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-Cell-outputWrapper&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-OutputArea jp-Cell-outputArea&quot;&gt;
&lt;div class=&quot;jp-OutputArea-child&quot;&gt;
&lt;div class=&quot;jp-OutputPrompt jp-OutputArea-prompt&quot;&gt;&lt;/div&gt;
&lt;div class=&quot;jp-RenderedText jp-OutputArea-output&quot; data-mime-type=&quot;application/vnd.jupyter.stderr&quot; tabindex=&quot;0&quot;&gt;
&lt;pre&gt;C:\Users\91851\AppData\Local\Temp\ipykernel_31976\2816007329.py:1: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option(&#39;future.no_silent_downcasting&#39;, True)`
  df.loc[:, &quot;english_score&quot;] = df[&quot;english_score&quot;].fillna(df[&quot;english_score&quot;].mean().round())
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell&quot; id=&quot;cell-id=0db4f7c5-b74a-4f90-aaf1-d0c8f2f1bfb2&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [130]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-Cell-outputWrapper&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-OutputArea jp-Cell-outputArea&quot;&gt;
&lt;div class=&quot;jp-OutputArea-child jp-OutputArea-executeResult&quot;&gt;
&lt;div class=&quot;jp-OutputPrompt jp-OutputArea-prompt&quot;&gt;Out[130]:&lt;/div&gt;
&lt;div class=&quot;jp-RenderedHTMLCommon jp-RenderedHTML jp-OutputArea-output jp-OutputArea-executeResult&quot; data-mime-type=&quot;text/html&quot; tabindex=&quot;0&quot;&gt;
&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
&lt;thead&gt;
&lt;tr style=&quot;text-align: right;&quot;&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;student_id&lt;/th&gt;
&lt;th&gt;name&lt;/th&gt;
&lt;th&gt;age&lt;/th&gt;
&lt;th&gt;gender&lt;/th&gt;
&lt;th&gt;grade&lt;/th&gt;
&lt;th&gt;math_score&lt;/th&gt;
&lt;th&gt;english_score&lt;/th&gt;
&lt;th&gt;science_score&lt;/th&gt;
&lt;th&gt;enrolled_date&lt;/th&gt;
&lt;th&gt;remarks&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;0&lt;/th&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;Jane Smith&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;75.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;66&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;1&lt;/th&gt;
&lt;td&gt;101&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;95.0&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;2&lt;/th&gt;
&lt;td&gt;102&lt;/td&gt;
&lt;td&gt;Chris P.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;69&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;needs improvement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;3&lt;/th&gt;
&lt;td&gt;103&lt;/td&gt;
&lt;td&gt;Jane Smith&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;4&lt;/th&gt;
&lt;td&gt;104&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;96.0&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;5&lt;/th&gt;
&lt;td&gt;105&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;83&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;needs improvement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;6&lt;/th&gt;
&lt;td&gt;106&lt;/td&gt;
&lt;td&gt;Ali Khan&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;64.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;75&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;7&lt;/th&gt;
&lt;td&gt;107&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;63.0&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;8&lt;/th&gt;
&lt;td&gt;108&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;80.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;9&lt;/th&gt;
&lt;td&gt;109&lt;/td&gt;
&lt;td&gt;Robert Brown&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;97&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;needs improvement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;10&lt;/th&gt;
&lt;td&gt;110&lt;/td&gt;
&lt;td&gt;Lucy Gray&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;65.0&lt;/td&gt;
&lt;td&gt;67.0&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;11&lt;/th&gt;
&lt;td&gt;111&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;95&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;12&lt;/th&gt;
&lt;td&gt;112&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;87.0&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;13&lt;/th&gt;
&lt;td&gt;113&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;98&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;14&lt;/th&gt;
&lt;td&gt;114&lt;/td&gt;
&lt;td&gt;Ali Khan&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;91.0&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;15&lt;/th&gt;
&lt;td&gt;115&lt;/td&gt;
&lt;td&gt;Lucy Gray&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;65.0&lt;/td&gt;
&lt;td&gt;91.0&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;16&lt;/th&gt;
&lt;td&gt;116&lt;/td&gt;
&lt;td&gt;Chris P.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;72&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;17&lt;/th&gt;
&lt;td&gt;117&lt;/td&gt;
&lt;td&gt;Ali Khan&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;67.0&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;81&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;18&lt;/th&gt;
&lt;td&gt;118&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;100.0&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;19&lt;/th&gt;
&lt;td&gt;119&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;73.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;90&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;20&lt;/th&gt;
&lt;td&gt;120&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;21&lt;/th&gt;
&lt;td&gt;121&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;66.0&lt;/td&gt;
&lt;td&gt;72.0&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;22&lt;/th&gt;
&lt;td&gt;122&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;75.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;66&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;good student&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;23&lt;/th&gt;
&lt;td&gt;123&lt;/td&gt;
&lt;td&gt;Jane Smith&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;63&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;24&lt;/th&gt;
&lt;td&gt;124&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;91&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;25&lt;/th&gt;
&lt;td&gt;125&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;94.0&lt;/td&gt;
&lt;td&gt;80.0&lt;/td&gt;
&lt;td&gt;63&lt;/td&gt;
&lt;td&gt;10-06-2022&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;26&lt;/th&gt;
&lt;td&gt;126&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;64.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;good student&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;27&lt;/th&gt;
&lt;td&gt;127&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;76.0&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;06/12/2022&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;28&lt;/th&gt;
&lt;td&gt;128&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;64.0&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;29&lt;/th&gt;
&lt;td&gt;129&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;64.0&lt;/td&gt;
&lt;td&gt;83&lt;/td&gt;
&lt;td&gt;2022/06/11&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell&quot; id=&quot;cell-id=b8935576-34df-4ab3-90b6-d1a9118476be&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [131]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;enrolled_date&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;unique&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-Cell-outputWrapper&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-OutputArea jp-Cell-outputArea&quot;&gt;
&lt;div class=&quot;jp-OutputArea-child jp-OutputArea-executeResult&quot;&gt;
&lt;div class=&quot;jp-OutputPrompt jp-OutputArea-prompt&quot;&gt;Out[131]:&lt;/div&gt;
&lt;div class=&quot;jp-RenderedText jp-OutputArea-output jp-OutputArea-executeResult&quot; data-mime-type=&quot;text/plain&quot; tabindex=&quot;0&quot;&gt;
&lt;pre&gt;array([&#39;2022-06-10&#39;, &#39;10-06-2022&#39;, &#39;06/12/2022&#39;, &#39;2022/06/11&#39;],
      dtype=object)&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell&quot; id=&quot;cell-id=d1f9803f-c1b1-493b-8706-62c0b900879d&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [132]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;yyyy&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mm&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dd&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-Cell-outputWrapper&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-OutputArea jp-Cell-outputArea&quot;&gt;
&lt;div class=&quot;jp-OutputArea-child&quot;&gt;
&lt;div class=&quot;jp-OutputPrompt jp-OutputArea-prompt&quot;&gt;&lt;/div&gt;
&lt;div class=&quot;jp-RenderedText jp-OutputArea-output&quot; data-mime-type=&quot;application/vnd.jupyter.stderr&quot; tabindex=&quot;0&quot;&gt;
&lt;pre&gt;
&lt;span class=&quot;ansi-red-intense-fg ansi-bold&quot;&gt;---------------------------------------------------------------------------&lt;/span&gt;
&lt;span class=&quot;ansi-red-intense-fg ansi-bold&quot;&gt;NameError&lt;/span&gt;                                 Traceback (most recent call last)
Cell &lt;span class=&quot;ansi-green-intense-fg ansi-bold&quot;&gt;In[132], line 1&lt;/span&gt;
&lt;span class=&quot;ansi-green-intense-fg ansi-bold&quot;&gt;----&amp;gt; 1&lt;/span&gt; &lt;span class=&quot;ansi-yellow-bg&quot;&gt;yyyy&lt;/span&gt;&lt;span style=&quot;color: #626262;&quot;&gt;-&lt;/span&gt;mm&lt;span style=&quot;color: #626262;&quot;&gt;-&lt;/span&gt;dd

&lt;span class=&quot;ansi-red-intense-fg ansi-bold&quot;&gt;NameError&lt;/span&gt;: name &#39;yyyy&#39; is not defined&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs&quot; id=&quot;cell-id=820356b0-65e1-442a-aa12-613aff588e5d&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [133]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dict_replace&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;s1&quot;&gt;&#39;10-06-2022&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;2022-06-10&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;s1&quot;&gt;&#39;06/12/2022&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;2022-06-12&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;s1&quot;&gt;&#39;2022/06/11&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;2022-06-11&#39;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs&quot; id=&quot;cell-id=848b1b1b-cd55-4bf9-8e72-c797e36684d0&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [134]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[:,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;enrolled_date&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;enrolled_date&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dict_replace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell&quot; id=&quot;cell-id=1275d939-11cd-4316-80fd-5d42d180f680&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [147]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-Cell-outputWrapper&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-OutputArea jp-Cell-outputArea&quot;&gt;
&lt;div class=&quot;jp-OutputArea-child jp-OutputArea-executeResult&quot;&gt;
&lt;div class=&quot;jp-OutputPrompt jp-OutputArea-prompt&quot;&gt;Out[147]:&lt;/div&gt;
&lt;div class=&quot;jp-RenderedHTMLCommon jp-RenderedHTML jp-OutputArea-output jp-OutputArea-executeResult&quot; data-mime-type=&quot;text/html&quot; tabindex=&quot;0&quot;&gt;
&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
&lt;thead&gt;
&lt;tr style=&quot;text-align: right;&quot;&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;student_id&lt;/th&gt;
&lt;th&gt;name&lt;/th&gt;
&lt;th&gt;age&lt;/th&gt;
&lt;th&gt;gender&lt;/th&gt;
&lt;th&gt;grade&lt;/th&gt;
&lt;th&gt;math_score&lt;/th&gt;
&lt;th&gt;english_score&lt;/th&gt;
&lt;th&gt;science_score&lt;/th&gt;
&lt;th&gt;enrolled_date&lt;/th&gt;
&lt;th&gt;remarks&lt;/th&gt;
&lt;th&gt;enrolled_date1&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;0&lt;/th&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;Jane Smith&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;75.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;66&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;1&lt;/th&gt;
&lt;td&gt;101&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;95.0&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;2&lt;/th&gt;
&lt;td&gt;102&lt;/td&gt;
&lt;td&gt;Chris P.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;69&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;td&gt;needs improvement&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;3&lt;/th&gt;
&lt;td&gt;103&lt;/td&gt;
&lt;td&gt;Jane Smith&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;4&lt;/th&gt;
&lt;td&gt;104&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;96.0&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;5&lt;/th&gt;
&lt;td&gt;105&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;83&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;td&gt;needs improvement&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;6&lt;/th&gt;
&lt;td&gt;106&lt;/td&gt;
&lt;td&gt;Ali Khan&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;64.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;75&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;7&lt;/th&gt;
&lt;td&gt;107&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;63.0&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;2022-06-11&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;td&gt;2022-06-11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;8&lt;/th&gt;
&lt;td&gt;108&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;80.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;9&lt;/th&gt;
&lt;td&gt;109&lt;/td&gt;
&lt;td&gt;Robert Brown&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;97&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;needs improvement&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;10&lt;/th&gt;
&lt;td&gt;110&lt;/td&gt;
&lt;td&gt;Lucy Gray&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;65.0&lt;/td&gt;
&lt;td&gt;67.0&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;11&lt;/th&gt;
&lt;td&gt;111&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;95&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;12&lt;/th&gt;
&lt;td&gt;112&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;87.0&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;13&lt;/th&gt;
&lt;td&gt;113&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;98&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;14&lt;/th&gt;
&lt;td&gt;114&lt;/td&gt;
&lt;td&gt;Ali Khan&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;91.0&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;td&gt;2022-06-11&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;td&gt;2022-06-11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;15&lt;/th&gt;
&lt;td&gt;115&lt;/td&gt;
&lt;td&gt;Lucy Gray&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;65.0&lt;/td&gt;
&lt;td&gt;91.0&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;16&lt;/th&gt;
&lt;td&gt;116&lt;/td&gt;
&lt;td&gt;Chris P.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;72&lt;/td&gt;
&lt;td&gt;2022-06-11&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;td&gt;2022-06-11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;17&lt;/th&gt;
&lt;td&gt;117&lt;/td&gt;
&lt;td&gt;Ali Khan&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;67.0&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;81&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;18&lt;/th&gt;
&lt;td&gt;118&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;100.0&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;2022-06-11&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;td&gt;2022-06-11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;19&lt;/th&gt;
&lt;td&gt;119&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;73.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;90&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;20&lt;/th&gt;
&lt;td&gt;120&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;21&lt;/th&gt;
&lt;td&gt;121&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;66.0&lt;/td&gt;
&lt;td&gt;72.0&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;22&lt;/th&gt;
&lt;td&gt;122&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;75.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;66&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;good student&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;23&lt;/th&gt;
&lt;td&gt;123&lt;/td&gt;
&lt;td&gt;Jane Smith&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;63&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;td&gt;excellent&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;24&lt;/th&gt;
&lt;td&gt;124&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;91&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;td&gt;GOOD&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;25&lt;/th&gt;
&lt;td&gt;125&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;94.0&lt;/td&gt;
&lt;td&gt;80.0&lt;/td&gt;
&lt;td&gt;63&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;26&lt;/th&gt;
&lt;td&gt;126&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;64.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;td&gt;good student&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;27&lt;/th&gt;
&lt;td&gt;127&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;76.0&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;td&gt;poor&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;28&lt;/th&gt;
&lt;td&gt;128&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;64.0&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;average&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;29&lt;/th&gt;
&lt;td&gt;129&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;64.0&lt;/td&gt;
&lt;td&gt;83&lt;/td&gt;
&lt;td&gt;2022-06-11&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;td&gt;2022-06-11&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs&quot; id=&quot;cell-id=d3431d3c-3f34-44b5-ad36-30e8dca3a46a&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [145]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;converted_date&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;to_datetime&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;enrolled_date&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell&quot; id=&quot;cell-id=ca6032f5-16a6-40b9-af0d-9368a7639671&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [146]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;enrolled_date&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-Cell-outputWrapper&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-OutputArea jp-Cell-outputArea&quot;&gt;
&lt;div class=&quot;jp-OutputArea-child jp-OutputArea-executeResult&quot;&gt;
&lt;div class=&quot;jp-OutputPrompt jp-OutputArea-prompt&quot;&gt;Out[146]:&lt;/div&gt;
&lt;div class=&quot;jp-RenderedText jp-OutputArea-output jp-OutputArea-executeResult&quot; data-mime-type=&quot;text/plain&quot; tabindex=&quot;0&quot;&gt;
&lt;pre&gt;0    2022-06-10
1    2022-06-10
2    2022-06-12
3    2022-06-10
4    2022-06-10
5    2022-06-12
6    2022-06-12
7    2022-06-11
8    2022-06-12
9    2022-06-10
10   2022-06-12
11   2022-06-10
12   2022-06-10
13   2022-06-12
14   2022-06-11
15   2022-06-12
16   2022-06-11
17   2022-06-10
18   2022-06-11
19   2022-06-12
20   2022-06-10
21   2022-06-10
22   2022-06-10
23   2022-06-12
24   2022-06-12
25   2022-06-10
26   2022-06-12
27   2022-06-12
28   2022-06-10
29   2022-06-11
Name: enrolled_date, dtype: datetime64[ns]&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell&quot; id=&quot;cell-id=6ddfc456-f1aa-47af-8cc6-52e084a76b0b&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [150]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;remarks&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;unique&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-Cell-outputWrapper&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-OutputArea jp-Cell-outputArea&quot;&gt;
&lt;div class=&quot;jp-OutputArea-child jp-OutputArea-executeResult&quot;&gt;
&lt;div class=&quot;jp-OutputPrompt jp-OutputArea-prompt&quot;&gt;Out[150]:&lt;/div&gt;
&lt;div class=&quot;jp-RenderedText jp-OutputArea-output jp-OutputArea-executeResult&quot; data-mime-type=&quot;text/plain&quot; tabindex=&quot;0&quot;&gt;
&lt;pre&gt;array([&#39;excellent&#39;, &#39;GOOD&#39;, &#39;needs improvement&#39;, &#39;average&#39;, &#39;Good&#39;,
       &#39;poor&#39;, &#39;Average&#39;, &#39;good student&#39;], dtype=object)&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs&quot; id=&quot;cell-id=cf5a2105-81ac-4c80-bba2-7c129bb6e8d3&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [155]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dict_remark&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;s1&quot;&gt;&#39;excellent&#39;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;Excellent&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; 
    &lt;span class=&quot;s1&quot;&gt;&#39;GOOD&#39;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;Good&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; 
    &lt;span class=&quot;s1&quot;&gt;&#39;needs improvement&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;Poor&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; 
    &lt;span class=&quot;s1&quot;&gt;&#39;poor&#39;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;Poor&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;s1&quot;&gt;&#39;average&#39;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;Average&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;s1&quot;&gt;&#39;good student&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;Good&#39;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs&quot; id=&quot;cell-id=ed0f01a5-238b-429e-b9fc-83da25a23cfb&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [158]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;loc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[:,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;remarks&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;remarks&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dict_remark&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell&quot; id=&quot;cell-id=4a1a68ee-6fb3-478f-98a0-17bb6c014b87&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [159]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-Cell-outputWrapper&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-OutputArea jp-Cell-outputArea&quot;&gt;
&lt;div class=&quot;jp-OutputArea-child jp-OutputArea-executeResult&quot;&gt;
&lt;div class=&quot;jp-OutputPrompt jp-OutputArea-prompt&quot;&gt;Out[159]:&lt;/div&gt;
&lt;div class=&quot;jp-RenderedHTMLCommon jp-RenderedHTML jp-OutputArea-output jp-OutputArea-executeResult&quot; data-mime-type=&quot;text/html&quot; tabindex=&quot;0&quot;&gt;
&lt;div&gt;
&lt;style scoped=&quot;&quot;&gt;
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
&lt;/style&gt;
&lt;table border=&quot;1&quot; class=&quot;dataframe&quot;&gt;
&lt;thead&gt;
&lt;tr style=&quot;text-align: right;&quot;&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;student_id&lt;/th&gt;
&lt;th&gt;name&lt;/th&gt;
&lt;th&gt;age&lt;/th&gt;
&lt;th&gt;gender&lt;/th&gt;
&lt;th&gt;grade&lt;/th&gt;
&lt;th&gt;math_score&lt;/th&gt;
&lt;th&gt;english_score&lt;/th&gt;
&lt;th&gt;science_score&lt;/th&gt;
&lt;th&gt;enrolled_date&lt;/th&gt;
&lt;th&gt;remarks&lt;/th&gt;
&lt;th&gt;enrolled_date1&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;0&lt;/th&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;Jane Smith&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;75.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;66&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;Excellent&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;1&lt;/th&gt;
&lt;td&gt;101&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;95.0&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;2&lt;/th&gt;
&lt;td&gt;102&lt;/td&gt;
&lt;td&gt;Chris P.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;69&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;td&gt;Poor&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;3&lt;/th&gt;
&lt;td&gt;103&lt;/td&gt;
&lt;td&gt;Jane Smith&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;4&lt;/th&gt;
&lt;td&gt;104&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;96.0&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;5&lt;/th&gt;
&lt;td&gt;105&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;83&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;td&gt;Poor&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;6&lt;/th&gt;
&lt;td&gt;106&lt;/td&gt;
&lt;td&gt;Ali Khan&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;64.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;75&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;7&lt;/th&gt;
&lt;td&gt;107&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;63.0&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;2022-06-11&lt;/td&gt;
&lt;td&gt;Excellent&lt;/td&gt;
&lt;td&gt;2022-06-11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;8&lt;/th&gt;
&lt;td&gt;108&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;80.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;td&gt;Poor&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;9&lt;/th&gt;
&lt;td&gt;109&lt;/td&gt;
&lt;td&gt;Robert Brown&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;97&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;Poor&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;10&lt;/th&gt;
&lt;td&gt;110&lt;/td&gt;
&lt;td&gt;Lucy Gray&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;65.0&lt;/td&gt;
&lt;td&gt;67.0&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;td&gt;Excellent&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;11&lt;/th&gt;
&lt;td&gt;111&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;95&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;12&lt;/th&gt;
&lt;td&gt;112&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;87.0&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;Poor&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;13&lt;/th&gt;
&lt;td&gt;113&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;98&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;14&lt;/th&gt;
&lt;td&gt;114&lt;/td&gt;
&lt;td&gt;Ali Khan&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;91.0&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;td&gt;2022-06-11&lt;/td&gt;
&lt;td&gt;Poor&lt;/td&gt;
&lt;td&gt;2022-06-11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;15&lt;/th&gt;
&lt;td&gt;115&lt;/td&gt;
&lt;td&gt;Lucy Gray&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;65.0&lt;/td&gt;
&lt;td&gt;91.0&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;16&lt;/th&gt;
&lt;td&gt;116&lt;/td&gt;
&lt;td&gt;Chris P.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;72&lt;/td&gt;
&lt;td&gt;2022-06-11&lt;/td&gt;
&lt;td&gt;Excellent&lt;/td&gt;
&lt;td&gt;2022-06-11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;17&lt;/th&gt;
&lt;td&gt;117&lt;/td&gt;
&lt;td&gt;Ali Khan&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;67.0&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;81&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;18&lt;/th&gt;
&lt;td&gt;118&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;100.0&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;62&lt;/td&gt;
&lt;td&gt;2022-06-11&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;td&gt;2022-06-11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;19&lt;/th&gt;
&lt;td&gt;119&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;73.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;90&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;20&lt;/th&gt;
&lt;td&gt;120&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;21&lt;/th&gt;
&lt;td&gt;121&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;66.0&lt;/td&gt;
&lt;td&gt;72.0&lt;/td&gt;
&lt;td&gt;94&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;22&lt;/th&gt;
&lt;td&gt;122&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;75.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;66&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;23&lt;/th&gt;
&lt;td&gt;123&lt;/td&gt;
&lt;td&gt;Jane Smith&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;63&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;td&gt;Excellent&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;24&lt;/th&gt;
&lt;td&gt;124&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;18.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;91&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;25&lt;/th&gt;
&lt;td&gt;125&lt;/td&gt;
&lt;td&gt;Mike O’Reilly&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;94.0&lt;/td&gt;
&lt;td&gt;80.0&lt;/td&gt;
&lt;td&gt;63&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;26&lt;/th&gt;
&lt;td&gt;126&lt;/td&gt;
&lt;td&gt;John Doe&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;64.0&lt;/td&gt;
&lt;td&gt;78.0&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;td&gt;Good&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;27&lt;/th&gt;
&lt;td&gt;127&lt;/td&gt;
&lt;td&gt;Simran Singh&lt;/td&gt;
&lt;td&gt;16.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;76.0&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;td&gt;Poor&lt;/td&gt;
&lt;td&gt;2022-06-12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;28&lt;/th&gt;
&lt;td&gt;128&lt;/td&gt;
&lt;td&gt;Sara O&#39;Neil&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Female&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;64.0&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;td&gt;2022-06-10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;th&gt;29&lt;/th&gt;
&lt;td&gt;129&lt;/td&gt;
&lt;td&gt;Patel R.&lt;/td&gt;
&lt;td&gt;17.0&lt;/td&gt;
&lt;td&gt;Male&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;74.0&lt;/td&gt;
&lt;td&gt;64.0&lt;/td&gt;
&lt;td&gt;83&lt;/td&gt;
&lt;td&gt;2022-06-11&lt;/td&gt;
&lt;td&gt;Average&lt;/td&gt;
&lt;td&gt;2022-06-11&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell&quot; id=&quot;cell-id=cc416441-defb-406c-9185-3cab93efbc2c&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [157]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;remarks&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dict_remark&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;unique&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-Cell-outputWrapper&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-OutputArea jp-Cell-outputArea&quot;&gt;
&lt;div class=&quot;jp-OutputArea-child jp-OutputArea-executeResult&quot;&gt;
&lt;div class=&quot;jp-OutputPrompt jp-OutputArea-prompt&quot;&gt;Out[157]:&lt;/div&gt;
&lt;div class=&quot;jp-RenderedText jp-OutputArea-output jp-OutputArea-executeResult&quot; data-mime-type=&quot;text/plain&quot; tabindex=&quot;0&quot;&gt;
&lt;pre&gt;array([&#39;Excellent&#39;, &#39;Good&#39;, &#39;Poor&#39;, &#39;Average&#39;], dtype=object)&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell&quot; id=&quot;cell-id=6878d730-c491-4d4d-8b34-9fd77821666f&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [162]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;iloc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[:,&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-Cell-outputWrapper&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-OutputArea jp-Cell-outputArea&quot;&gt;
&lt;div class=&quot;jp-OutputArea-child jp-OutputArea-executeResult&quot;&gt;
&lt;div class=&quot;jp-OutputPrompt jp-OutputArea-prompt&quot;&gt;Out[162]:&lt;/div&gt;
&lt;div class=&quot;jp-RenderedText jp-OutputArea-output jp-OutputArea-executeResult&quot; data-mime-type=&quot;text/plain&quot; tabindex=&quot;0&quot;&gt;
&lt;pre&gt;0     Excellent
1          Good
2          Poor
3       Average
4          Good
5          Poor
6          Good
7     Excellent
8          Poor
9          Poor
10    Excellent
11      Average
12         Poor
13      Average
14         Poor
15      Average
16    Excellent
17         Good
18      Average
19         Good
20      Average
21      Average
22         Good
23    Excellent
24         Good
25      Average
26         Good
27         Poor
28      Average
29      Average
Name: remarks, dtype: object&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell&quot; id=&quot;cell-id=d1de4468-14e8-4a86-8519-11ba77ef535b&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [163]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;__version__&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-Cell-outputWrapper&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-OutputArea jp-Cell-outputArea&quot;&gt;
&lt;div class=&quot;jp-OutputArea-child jp-OutputArea-executeResult&quot;&gt;
&lt;div class=&quot;jp-OutputPrompt jp-OutputArea-prompt&quot;&gt;Out[163]:&lt;/div&gt;
&lt;div class=&quot;jp-RenderedText jp-OutputArea-output jp-OutputArea-executeResult&quot; data-mime-type=&quot;text/plain&quot; tabindex=&quot;0&quot;&gt;
&lt;pre&gt;&#39;2.2.3&#39;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell&quot; id=&quot;cell-id=67b3321e-6899-48aa-9fdb-e3bb27903610&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [166]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;at&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;remarks&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-Cell-outputWrapper&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-OutputArea jp-Cell-outputArea&quot;&gt;
&lt;div class=&quot;jp-OutputArea-child jp-OutputArea-executeResult&quot;&gt;
&lt;div class=&quot;jp-OutputPrompt jp-OutputArea-prompt&quot;&gt;Out[166]:&lt;/div&gt;
&lt;div class=&quot;jp-RenderedText jp-OutputArea-output jp-OutputArea-executeResult&quot; data-mime-type=&quot;text/plain&quot; tabindex=&quot;0&quot;&gt;
&lt;pre&gt;&#39;Good&#39;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs&quot; id=&quot;cell-id=87acb64d-6cd3-43c0-830f-ef52f9e8a581&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [ ]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt; 
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs&quot; id=&quot;cell-id=b9fa7655-0518-41e1-87e0-bbd719cf83fc&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [ ]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt; 
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs&quot; id=&quot;cell-id=d6a3f859-ad3e-4ac5-8504-8acb57f045c5&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [ ]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt; 
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs&quot; id=&quot;cell-id=76b3494d-0a74-4565-82e0-3e0b1a1f6bfb&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [ ]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt; 
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs&quot; id=&quot;cell-id=3a1403cc-2f11-41c6-8bca-648fd3c9b3b5&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [ ]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt; 
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs&quot; id=&quot;cell-id=cfa8d6df-0b58-438c-aa33-0f1c379b96fd&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [ ]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt; 
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs&quot; id=&quot;cell-id=ce59c8e8-b5e5-4830-a918-ef17b36f4da2&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [ ]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt; 
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs&quot; id=&quot;cell-id=f1be5652-e0e4-4209-9e5e-fc536eaac1a9&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [ ]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class=&quot;kn&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;pandas&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;nn&quot;&gt;pd&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# Load dataset&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;read_csv&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;dirty_students_data_30rows.csv&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# 1. View basic info&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;Initial Data Overview:&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;info&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;Missing Values:&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;isnull&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;sum&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;Sample Rows:&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;head&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# 2. Drop exact duplicates&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;drop_duplicates&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# 3. Normalize &#39;gender&#39; values&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;gender&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;gender&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;strip&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;lower&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;({&lt;/span&gt;
    &lt;span class=&quot;s1&quot;&gt;&#39;male&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;Male&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;s1&quot;&gt;&#39;female&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;Female&#39;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;})&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# 4. Normalize &#39;grade&#39;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;grade&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;grade&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;({&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;10th&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;10&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;11th&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;11&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;})&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;astype&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# 5. Convert &#39;english_score&#39; to numeric, set errors=&#39;coerce&#39; to convert &#39;missing&#39; to NaN&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;english_score&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;to_numeric&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;english_score&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;errors&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;coerce&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# 6. Handle missing values (example: fill numeric NaNs with mean)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;numeric_cols&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;age&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;math_score&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;english_score&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;col&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;numeric_cols&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;col&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;col&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;fillna&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;col&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;mean&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;round&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# 7. Convert &#39;enrolled_date&#39; to datetime format&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;enrolled_date&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;pd&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;to_datetime&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;enrolled_date&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;],&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;errors&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;coerce&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# 8. Capitalize student names&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;name&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;name&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# 9. Normalize &#39;remarks&#39;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;remarks&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;&#39;remarks&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;strip&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;lower&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;({&lt;/span&gt;
    &lt;span class=&quot;s1&quot;&gt;&#39;good student&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;Good&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;s1&quot;&gt;&#39;good&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;Good&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;s1&quot;&gt;&#39;excellent&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;Excellent&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;s1&quot;&gt;&#39;average&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;Average&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;s1&quot;&gt;&#39;poor&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;Poor&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;s1&quot;&gt;&#39;needs improvement&#39;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&#39;Needs Improvement&#39;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;})&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;# 10. Final review&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;Cleaned Data Sample:&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;head&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;Data Types:&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;df&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dtypes&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;jp-Cell jp-CodeCell jp-Notebook-cell jp-mod-noOutputs&quot; id=&quot;cell-id=f16e2477-8c82-4c0e-8b8c-d3b36cd0161f&quot;&gt;
&lt;div class=&quot;jp-Cell-inputWrapper&quot; tabindex=&quot;0&quot;&gt;
&lt;div class=&quot;jp-Collapser jp-InputCollapser jp-Cell-inputCollapser&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;jp-InputArea jp-Cell-inputArea&quot;&gt;
&lt;div class=&quot;jp-InputPrompt jp-InputArea-prompt&quot;&gt;In [ ]:&lt;/div&gt;
&lt;div class=&quot;jp-CodeMirrorEditor jp-Editor jp-InputArea-editor&quot; data-type=&quot;inline&quot;&gt;
&lt;div class=&quot;cm-editor cm-s-jupyter&quot;&gt;
&lt;div class=&quot;highlight hl-ipython3&quot;&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt; 
&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/main&gt;
&lt;/body&gt;
&lt;/html&gt;
</content><link rel='replies' type='application/atom+xml' href='https://www.binarystudy.com/feeds/317473102695597598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.binarystudy.com/2025/10/data-cleaning-in-python-pandas-data-science-project.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/317473102695597598'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/317473102695597598'/><link rel='alternate' type='text/html' href='https://www.binarystudy.com/2025/10/data-cleaning-in-python-pandas-data-science-project.html' title='Data Cleaning in Python Pandas | Data Science, Analytics and ML Project'/><author><name>BinaryStudy</name><uri>http://www.blogger.com/profile/15724128477203620724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-872352852572370142.post-3717235056855145990</id><published>2025-01-19T12:05:00.000-08:00</published><updated>2025-01-19T21:49:14.299-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="colab"/><category scheme="http://www.blogger.com/atom/ns#" term="github"/><title type='text'>How to push/pull files from Google Colab to GitHub using Personal Access Token</title><content type='html'>&lt;p align=&quot;center&quot;&gt;
  &lt;iframe allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; src=&quot;https://www.youtube.com/embed/I77fny4s5Rg?si=tb2EFN8pvCowB1fU&quot; title=&quot;YouTube video player&quot; width=&quot;560&quot;&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

In this post, I will show how to use GitHub personal access token. Using this token we will push the files from the Google Colab to a GitHub repository. We will also see how you can pull the changes made in github to Colab.&lt;br /&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;&lt;span&gt;Steps&lt;/span&gt;&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;span&gt;Generate Personal Access Token at github&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Add user email and user name to config&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Clone the github repository&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Change Current Directory to repository name&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Make changes and add them to commit stack&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Commit the change&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Push to the github&lt;/li&gt;&lt;li&gt;pull command&lt;/li&gt;&lt;/ol&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;STEP 1: Generate personal access token at github&lt;/h3&gt;The first step is to Generate Personal Access Token at github.&lt;br /&gt;To generate token, you need to sign in to &lt;a href=&quot;http://github.com&quot;&gt;github.com&lt;/a&gt;. &lt;br /&gt;If you are using github first time, you need to signup first. Enter a valid email and create password and enter available user name.&lt;br /&gt;We have our github dashboard, to generate token,&lt;br /&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Click on the profile picture, go to settings.&lt;/li&gt;&lt;li&gt;Then Go down and find the Developer settings&lt;/li&gt;&lt;li&gt;Click it, then person access tokens, and tokens.&lt;/li&gt;&lt;li&gt;You will get all your generated tokens here.&lt;/li&gt;&lt;li&gt;Click generate new token, then generate new token (classic). We will use classic one, you can use fine-grain also.&lt;/li&gt;&lt;li&gt;Write a note what’s this token for.&lt;/li&gt;&lt;li&gt;Set expiration, You can choose custom date also. let&#39;s set it for tomorrow.&lt;/li&gt;&lt;li&gt;Select scopes. It is very important. It will give you the access to read, write, commit the changes in the repository from remote.&lt;/li&gt;&lt;li&gt;You can check other scopes as well.&lt;/li&gt;&lt;li&gt;Go down and generate token&lt;/li&gt;&lt;/ul&gt;Here our token is generated. &lt;br /&gt;Copy and save it to a secure place. Because you will not be able to see this token again.&lt;br /&gt;Let’s copy the token and paste here.&lt;div&gt;&lt;pre&gt;token = &quot;ghp_gn6YNwdxxSvJ3H..........................&quot;&lt;/pre&gt;So for now we have generated our personal access token. We completed our first step.&lt;div&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;2. Add user.email and user.name to config&lt;/h3&gt;Now the next step is to add user email and user name to the config.&lt;br /&gt;For this we will use &lt;br /&gt;&lt;pre&gt;git config -- global user.email &quot;your_email_id&quot;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;pre&gt;git config -- global user.name &quot;your_name&quot;&lt;/pre&gt;Run this, Shift enter.&lt;/div&gt;&lt;div&gt;Note: Above change your_email_id and your_name with actual values.&lt;br /&gt;You can check all Git Configuration settings using &lt;br /&gt;&lt;pre&gt;git config --list&lt;/pre&gt;&lt;/div&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;STEP 3: Clone the github repository&lt;/h3&gt;&lt;div&gt;Now next step is to clone the GitHub repository.&lt;br /&gt;We set the username and repository name. Here user name is your GitHub username and repo is GitHub repository.&lt;br /&gt;&lt;pre&gt;username = &quot;binary-study&quot;&lt;br /&gt;repo = &quot;DemoBinary&quot;&lt;/pre&gt;You can go and check to your GitHub account. If you don’t have a repository, you can create a new repository.  &lt;br /&gt;Now use &quot;git clone command&quot; to clone the repository to colab.&lt;br /&gt;We already have token, username, and repo.&lt;br /&gt;&lt;pre&gt;!git clone https://{token}@github.com/{username}/{repo}&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;Run the cell, shift enter.&lt;/div&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Output&lt;/h4&gt;&lt;div&gt;You may get the output something like below&lt;/div&gt;&lt;div&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; white-space-collapse: preserve;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; white-space-collapse: preserve;&quot;&gt;Cloning into &#39;DemoBinary&#39;...&lt;/span&gt;&lt;/div&gt;&lt;span id=&quot;docs-internal-guid-6a95e3ea-7fff-efd0-d664-ca3ec9417f63&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;remote: Enumerating objects: 60, done.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;remote: Counting objects: 100% (60/60), done.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;remote: Compressing objects: 100% (46/46), done.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;remote: Total 60 (delta 25), reused 26 (delta 7), pack-reused 0 (from 0)&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Receiving objects: 100% (60/60), 23.54 KiB | 7.85 MiB/s, done.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Resolving deltas: 100% (25/25), done.&lt;/span&gt;&lt;/p&gt;&lt;div&gt;A new folder with the same name as of repository name is created. We have files in this.&lt;/div&gt;&lt;/span&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;STEP 4: Change present working directory (pwd) to repository name&lt;/h3&gt;&lt;div&gt;Let’s check the present working directory.&lt;br /&gt;Use this command pwd&lt;/div&gt;&lt;div&gt;&lt;pre&gt;!pwd&lt;/pre&gt;Our current working directory is /content&lt;br /&gt;We need to go inside our repo. &lt;br /&gt;We will use cd repo name &lt;br /&gt;&lt;pre&gt;%cd {repo}&lt;/pre&gt;&lt;pre&gt;/content/DemoBinary&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;Now we are inside our repository.&lt;/div&gt;&lt;div&gt;&lt;h3&gt;STEP 5: Make changes and add them to commit stack&lt;/h3&gt;Now next step is to make changes and add to commit stack. &lt;br /&gt;You can modify the existing files or you can even add new files. &lt;br /&gt;Let’s modify an existing file this myfile.py &lt;br /&gt;We are adding here a new line &lt;br /&gt;&lt;pre&gt;#this line is added from colab&lt;/pre&gt;Now let’s also create new file that is colab.htm&lt;br /&gt;Write code in this file.&lt;br /&gt;Save the file ctrl+S&lt;br /&gt;You can check list of all file we have in current directory&lt;br /&gt;Use ls command&lt;/div&gt;&lt;div&gt;&lt;pre&gt;!ls&lt;/pre&gt;These are the files that we have.&lt;br /&gt;&lt;span id=&quot;docs-internal-guid-8da10988-7fff-e35d-6d26-95ed899a56cd&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;DemoGitHub.ipynb&amp;nbsp; myfile.py &amp;nbsp; README.md&lt;/span&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;text-wrap-mode: nowrap;&quot;&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;text-wrap-mode: nowrap;&quot;&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&amp;nbsp; Save_load_PyTorch_Model.ipynb&lt;/span&gt;&lt;/p&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;firstpython.py&lt;/span&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;text-wrap-mode: nowrap;&quot;&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&amp;nbsp; mytext.txt&amp;nbsp; Refined_AGCN.ipynb&amp;nbsp; secondfile.py&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Now let’s check the git status&lt;/div&gt;&lt;div&gt;&lt;pre&gt;!git status&lt;/pre&gt;&lt;/div&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Output&lt;/h4&gt;&lt;div&gt;&lt;span id=&quot;docs-internal-guid-125b9b43-7fff-a7a0-ba37-0d9ee940c73e&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;On branch main&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Your branch is up to date with &#39;origin/main&#39;.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Changes not staged for commit:&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&amp;nbsp;&amp;nbsp;(use &quot;git add &amp;lt;file&amp;gt;...&quot; to update what will be committed)&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&amp;nbsp;&amp;nbsp;(use &quot;git restore &amp;lt;file&amp;gt;...&quot; to discard changes in working directory)&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;text-wrap-mode: nowrap;&quot;&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;modified: &amp;nbsp; myfile.py&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Untracked files:&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&amp;nbsp;&amp;nbsp;(use &quot;git add &amp;lt;file&amp;gt;...&quot; to include in what will be committed)&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;text-wrap-mode: nowrap;&quot;&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;mytext.txt&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;no changes added to commit (use &quot;git add&quot; and/or &quot;git commit -a&quot;)&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;We have modified myfile.py&lt;/div&gt;&lt;div&gt;And we have one untracked file. This is the new file that we have created. We need to add to stack to commit.&lt;br /&gt;To do this, we use &quot;git add --a&quot; command to add all files (new files and modified files).&lt;br /&gt;You can add a specific file using file name like this.&lt;br /&gt;&lt;pre&gt;!git add colab.htm&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;Let’s check the git status&lt;/div&gt;&lt;div&gt;We still need to add the modified file to commit stack.&lt;br /&gt;For this, we again use &quot;git add command&quot; with file name. &lt;br /&gt;But better to use git add –a, it will add all the files, new and modified.&lt;br /&gt;Let’s now check the git status.&lt;/div&gt;&lt;span id=&quot;docs-internal-guid-6310809b-7fff-d1e4-f847-aac9ce0fc391&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.62857; margin-bottom: 0pt; margin-left: 5pt; margin-right: 6pt; margin-top: 8pt; margin: 8pt 6pt 0pt 5pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: blue; font-size: 10.5pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;!&lt;/span&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;font-size: 10.5pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;git status&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;On branch main&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Your branch is up to date with &#39;origin/main&#39;.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Changes to be committed:&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&amp;nbsp;&amp;nbsp;(use &quot;git restore --staged &amp;lt;file&amp;gt;...&quot; to unstage)&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;text-wrap-mode: nowrap;&quot;&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;modified: &amp;nbsp; myfile.py&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;text-wrap-mode: nowrap;&quot;&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;new file: &amp;nbsp; mytext.txt&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div&gt;&amp;nbsp; &lt;br /&gt;Now we have these two files to commit to finally save in GitHub.&lt;br /&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;STEP 6: Commit the changes&lt;/h3&gt;Now the next step is to commit the changes.&lt;br /&gt;For this we use &quot;git commit&amp;nbsp; -a -m&quot; a for all files and m for a commit message. You can write any message, it’s just for your understanding.&lt;br /&gt;&lt;span id=&quot;docs-internal-guid-77647e09-7fff-9496-06d9-6f98c060a1d4&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.62857; margin-bottom: 0pt; margin-left: 5pt; margin-right: 6pt; margin-top: 8pt; margin: 8pt 6pt 0pt 5pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: blue; font-size: 10.5pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;!&lt;/span&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;font-size: 10.5pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;git commit -a -m &lt;/span&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #a31515; font-size: 10.5pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&quot;Commit from Google colab with new file&quot;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;[main d2797a9] Commit from Google colab with new file&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&amp;nbsp;2 files changed, 2 insertions(+), 1 deletion(-)&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&amp;nbsp;create mode 100644 mytext.txt&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You can also commit specific file using file name like this&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;pre&gt;!git coomit filename -m specific message.&lt;/pre&gt;&lt;br /&gt;Let’s commit the colab.htm file first. &lt;br /&gt;Run this&lt;br /&gt;We have committed these files but still these files are not reflected in our GitHub repo. Let’s check.&lt;br /&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;STEP 7: Push to github&lt;/h3&gt;Finally we need to push to save all changes in GitHub repo.&lt;br /&gt;So Final step is to push to github.&lt;br /&gt;We use git push command&lt;br /&gt;&lt;pre&gt;!git push origin branch_name&lt;/pre&gt;&lt;br /&gt;Here you can check your branch on github. &lt;br /&gt;We have our branch as main.&lt;br /&gt;So&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;pre&gt;!git push origin main&lt;/pre&gt;&lt;br /&gt;Run this,&lt;/div&gt;&lt;div&gt;&lt;span id=&quot;docs-internal-guid-8837e8b3-7fff-da32-26d5-a22a6603d997&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Enumerating objects: 6, done.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Counting objects: 100% (6/6), done.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Delta compression using up to 2 threads&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Compressing objects: 100% (3/3), done.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Writing objects: 100% (4/4), 404 bytes | 404.00 KiB/s, done.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Total 4 (delta 2), reused 0 (delta 0), pack-reused 0&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;remote: Resolving deltas: 100% (2/2), completed with 2 local objects.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;To&lt;/span&gt;&lt;a href=&quot;https://github.com/binary-study/DemoBinary&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt; &lt;/span&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #1155cc; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;https://github.com/binary-study/DemoBinary&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;7e66ea7..d2797a9&amp;nbsp; main -&amp;gt; main&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;Well done!!&lt;br /&gt;Finally we have pushed all the changes to github.&lt;br /&gt;Let’s check it.&lt;br /&gt;myfile.py is modified&lt;br /&gt;And new file colab.htm is added to our repository.&lt;br /&gt;Chek the commit messages - these are the messages that we have written while committing changes.&lt;br /&gt;Commit from Google colab with new file &lt;br /&gt;Commit from Google colab with modified.&lt;br /&gt;This way you can push to all changes to github form colab.&lt;br /&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;8. Pull the changes from github&lt;/h3&gt;&lt;/div&gt;&lt;div&gt;You can also pull changes from github to colab.Make some changes in any file&lt;br /&gt;Let’s modify mytext.txt file.&lt;br /&gt;Go for edit this file&lt;br /&gt;Modify it and commit changes, write commit message and commit changes.&lt;br /&gt;Now to pull the changes from github we use&lt;br /&gt;&lt;pre&gt;!git pull origin main&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;command similar to push.&lt;br /&gt;Run the cell and check if the changes are reflected here.&lt;/div&gt;&lt;div&gt;&lt;span id=&quot;docs-internal-guid-be550310-7fff-21fe-6394-a1ec9f69173f&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;remote: Enumerating objects: 5, done.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;remote: Counting objects: 100% (5/5), done.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;remote: Compressing objects: 100% (3/3), done.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Unpacking objects: 100% (3/3), 971 bytes | 971.00 KiB/s, done.&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;From&lt;/span&gt;&lt;a href=&quot;https://github.com/binary-study/DemoBinary&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt; &lt;/span&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #1155cc; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; text-decoration-line: underline; text-decoration-skip-ink: none; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;https://github.com/binary-study/DemoBinary&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&amp;nbsp;* branch&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; main &amp;nbsp; &amp;nbsp; &amp;nbsp; -&amp;gt; FETCH_HEAD&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;d2797a9..d22cdf4&amp;nbsp; main &amp;nbsp; &amp;nbsp; &amp;nbsp; -&amp;gt; origin/main&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Updating d2797a9..d22cdf4&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;Fast-forward&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&amp;nbsp;mytext.txt | 1 +&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-right: 1pt; margin-top: 1pt;&quot;&gt;&lt;span face=&quot;Roboto, sans-serif&quot; style=&quot;color: #212121; font-size: 10pt; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&amp;nbsp;1 file changed, 1 insertion(+)&lt;/span&gt;&lt;/p&gt;&lt;div&gt;Yes here also our file is updated.&lt;/div&gt;&lt;/span&gt;So finally we have used push the changes from Goole colab to Github repository using Personal Access token. Also we push the changes from GitHub to colab.&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.binarystudy.com/feeds/3717235056855145990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.binarystudy.com/2025/01/how-to-pushpull-files-from-google-colab-to-github.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/3717235056855145990'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/3717235056855145990'/><link rel='alternate' type='text/html' href='https://www.binarystudy.com/2025/01/how-to-pushpull-files-from-google-colab-to-github.html' title='How to push/pull files from Google Colab to GitHub using Personal Access Token'/><author><name>BinaryStudy</name><uri>http://www.blogger.com/profile/15724128477203620724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/I77fny4s5Rg/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-872352852572370142.post-2072304763975342495</id><published>2025-01-19T10:08:00.000-08:00</published><updated>2025-01-19T10:11:08.407-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linear Regression"/><category scheme="http://www.blogger.com/atom/ns#" term="Mathematical Concepts in Machine Learning"/><title type='text'>ML Mathematical Concepts - Cost Functions and Optimization in Linear Regression</title><content type='html'>&lt;h2&gt;1. Cost Function for Linear Regression Problems&lt;/h2&gt;
&lt;p&gt;The c&lt;strong&gt;ost function&lt;/strong&gt; measures the error between predicted values and actual target values in a regression model. The goal of training the regression model is to minimize this cost function.&lt;/p&gt;

&lt;h3&gt;Mean Squared Error (MSE)&lt;/h3&gt;
&lt;p&gt;The most commonly used cost function for regression is the &lt;strong&gt;Mean Squared Error (MSE)&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;$$ J(\theta) = \frac{1}{2m} \sum_{i=1}^m \left( h_\theta(x^{(i)}) - y^{(i)} \right)^2 $$&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Where,&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;\( J(\theta) \): The cost function to minimize.&lt;/li&gt;
    &lt;li&gt;\( m \): The number of training examples.&lt;/li&gt;
    &lt;li&gt;\( h_\theta(x^{(i)}) \): The predicted value (hypothesis) for the \(i\)-th training example.&lt;/li&gt;
    &lt;li&gt;\( y^{(i)} \): The actual target value for the \(i\)-th training example.&lt;/li&gt;
    &lt;li&gt;The factor \( \frac{1}{2} \) is used for convenience during differentiation.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Other Cost Functions&lt;/h3&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Mean Absolute Error (MAE):&lt;/strong&gt; \[ J(\theta) = \frac{1}{m} \sum_{i=1}^m \left| h_\theta(x^{(i)}) - y^{(i)} \right| \]&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Huber Loss:&lt;/strong&gt; Combines MSE and MAE to handle outliers.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 style=&quot;text-align: left;&quot;&gt;2. Optimization in Regression Problems&lt;/h2&gt;
&lt;p&gt;Optimization is the process of finding the best parameters &lt;code&gt;θ&lt;/code&gt; that minimize the cost function. In regression, we often use &lt;strong&gt;Gradient Descent&lt;/strong&gt; to perform optimization.&lt;/p&gt;

&lt;h3&gt;Gradient Descent&lt;/h3&gt;
&lt;p&gt;Gradient Descent is an iterative optimization algorithm used to minimize the cost function by adjusting model parameters in the direction of the steepest descent of the cost function.&lt;/p&gt;

&lt;h4&gt;Key Equation&lt;/h4&gt;
&lt;p&gt;The parameters are updated as follows:&lt;/p&gt;
&lt;p&gt;
    \[
    \theta_j := \theta_j - \eta \frac{\partial}{\partial \theta_j} J(\theta)
    \]
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;code&gt;θ&lt;sub&gt;j&lt;/sub&gt;&lt;/code&gt;: Parameter to be updated.&lt;/li&gt;
    &lt;li&gt;&lt;code&gt;η&lt;/code&gt;: Learning rate, a hyperparameter that controls the size of each step.&lt;/li&gt;
    &lt;li&gt;\[\frac{\partial}{\partial \theta_j} J(\theta)\]: Partial derivative of the cost function w.r.t. the parameter &lt;code&gt;θ&lt;sub&gt;j&lt;/sub&gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Steps of Gradient Descent&lt;/h4&gt;
&lt;ol&gt;
    &lt;li&gt;Initialize the parameters &lt;code&gt;θ&lt;/code&gt; with random values.&lt;/li&gt;
    &lt;li&gt;Compute the gradient of the cost function w.r.t. each parameter.&lt;/li&gt;
    &lt;li&gt;Update the parameters using the update rule.&lt;/li&gt;
    &lt;li&gt;Repeat until convergence (i.e., when the changes in the cost function are below a predefined threshold).&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;Stochastic Gradient Descent (SGD)&lt;/h3&gt;
&lt;p&gt;In SGD, the cost function is computed and the parameters are updated for each training sample instead of the entire dataset. This results in faster but noisier updates. The update rule remains the same:&lt;/p&gt;
&lt;p&gt;
    \[
    \theta_j := \theta_j - \eta \frac{\partial}{\partial \theta_j} J(\theta)
    \]
&lt;/p&gt;

&lt;h3&gt;Regularization in Optimization&lt;/h3&gt;
&lt;p&gt;To prevent overfitting, regularization techniques add a penalty term to the cost function, encouraging simpler models by penalizing large parameter values.&lt;/p&gt;

&lt;h4&gt;L1 Regularization (Lasso)&lt;/h4&gt;
&lt;p&gt;Adds the absolute value of the coefficients to the cost function:&lt;/p&gt;
&lt;p&gt;
    \[
    J(\theta) = \frac{1}{2m} \sum_{i=1}^m \left( h_\theta(x^{(i)}) - y^{(i)} \right)^2 + \lambda \sum_{j=1}^n |\theta_j|
    \]
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;\( \lambda \): Regularization parameter that controls the penalty strength.&lt;/li&gt;
    &lt;li&gt;\( |\theta_j| \): Absolute value of the coefficients.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;L2 Regularization (Ridge)&lt;/h4&gt;
&lt;p&gt;Adds the squared value of the coefficients to the cost function:&lt;/p&gt;
&lt;p&gt;
    \[
    J(\theta) = \frac{1}{2m} \sum_{i=1}^m \left( h_\theta(x^{(i)}) - y^{(i)} \right)^2 + \lambda \sum_{j=1}^n \theta_j^2
    \]
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;\( \lambda \): Regularization parameter that controls the penalty strength.&lt;/li&gt;
    &lt;li&gt;\( \theta_j^2 \): Squared value of the coefficients.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Elastic Net Regularization&lt;/h4&gt;
&lt;p&gt;Combines L1 and L2 regularization techniques:&lt;/p&gt;
&lt;p&gt;
    \[
    J(\theta) = \frac{1}{2m} \sum_{i=1}^m \left( h_\theta(x^{(i)}) - y^{(i)} \right)^2 + \lambda_1 \sum_{j=1}^n |\theta_j| + \lambda_2 \sum_{j=1}^n \theta_j^2
    \]
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;\( \lambda_1, \lambda_2 \): Regularization parameters for L1 and L2 penalties.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Effect of Regularization&lt;/h4&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;L1 Regularization:&lt;/strong&gt; Encourages sparsity by setting some coefficients to zero, leading to feature selection.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;L2 Regularization:&lt;/strong&gt; Shrinks all coefficients uniformly, reducing model complexity without eliminating features.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Convergence in Optimization&lt;/h3&gt;
&lt;p&gt;Convergence is achieved when the cost function stabilizes or changes below a certain threshold across iterations. Factors affecting convergence include:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Learning Rate (\( \eta \)):&lt;/strong&gt; Too small causes slow convergence, while too large may overshoot the minimum.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Initial Parameter Values:&lt;/strong&gt; Poor initialization can lead to suboptimal solutions or slow convergence.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Gradient Descent Variant:&lt;/strong&gt; Batch, Stochastic, or Mini-batch Gradient Descent can influence speed and stability.&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;h2&gt;3. Closed-Form Solution for Linear Regression&lt;/h2&gt;&lt;p&gt;In cases where computational efficiency is a concern,&amp;nbsp;&lt;strong&gt;ordinary least squares (OLS)&lt;/strong&gt;&amp;nbsp;provides a closed-form solution for linear regression:&lt;/p&gt;&lt;p&gt;\[ \theta = \left( X^T X \right)^{-1} X^T y \]&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Explanation:&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;\( X \): The design matrix (input data).&lt;/li&gt;&lt;li&gt;\( y \): The target vector.&lt;/li&gt;&lt;li&gt;\( \left( X^T X \right)^{-1} \): The inverse of the matrix product \( X^T X \).&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Summary of Mathematical Flow&lt;/h2&gt;&lt;ol&gt;&lt;li&gt;Define the cost function \( J(\theta) \).&lt;/li&gt;&lt;li&gt;Compute its gradient \( \frac{\partial J(\theta)}{\partial \theta} \).&lt;/li&gt;&lt;li&gt;Use gradient descent or a similar optimization algorithm to minimize \( J(\theta) \).&lt;/li&gt;&lt;li&gt;Regularize to reduce overfitting (if necessary).&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;

&lt;script src=&quot;https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js&quot;&gt;&lt;/script&gt;
</content><link rel='replies' type='application/atom+xml' href='https://www.binarystudy.com/feeds/2072304763975342495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.binarystudy.com/2025/01/machine-learning-mathematical-concepts-linear-regression.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/2072304763975342495'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/2072304763975342495'/><link rel='alternate' type='text/html' href='https://www.binarystudy.com/2025/01/machine-learning-mathematical-concepts-linear-regression.html' title='ML Mathematical Concepts - Cost Functions and Optimization in Linear Regression'/><author><name>BinaryStudy</name><uri>http://www.blogger.com/profile/15724128477203620724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-872352852572370142.post-5933607735278682884</id><published>2025-01-13T10:20:00.000-08:00</published><updated>2025-01-19T21:41:39.268-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GATE 2025"/><category scheme="http://www.blogger.com/atom/ns#" term="Gate Data Science and AI"/><category scheme="http://www.blogger.com/atom/ns#" term="Technology News"/><title type='text'>GATE 2025 - Data Science and Artificial Intelligence (DA Paper) Syllabus</title><content type='html'>GATE New Test Paper on (DA) Data Science and Artificial Intelligence Syllabus &lt;b id=&quot;docs-internal-guid-a5b16e10-7fff-6aa5-5121-31f690224397&quot; style=&quot;font-weight: normal;&quot;&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Arial,sans-serif&quot; style=&quot;background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;a href=&quot;https://gate2025.iitr.ac.in/doc/2025/GATE%20_DA_2025_Syllabus.pdf&quot; rel=&quot;nofollow&quot;&gt;Download Official &amp;nbsp;Website PDF&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Arial,sans-serif&quot; style=&quot;background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;a href=&quot;https://gate2025.iitr.ac.in/exam-papers-and-syllabus.html&quot;&gt;Official Website&lt;/a&gt; Notification&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span face=&quot;Arial,sans-serif&quot; style=&quot;background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;b&gt;&lt;span face=&quot;Arial, sans-serif&quot; style=&quot;background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Marks Breakdown&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/b&gt;General Aptitude (GA) - 15 Marks&lt;br /&gt;Data Science and Artificial Intelligence (DA) - 85 Marks&lt;br /&gt;&lt;br /&gt;General Aptitude (GA) is common for all papers. &lt;br /&gt;&lt;br /&gt;Following is the complete syllabus of the DA (Data Science and Artificial Intelligence) paper introduced in GATE 2024 first time. &lt;br /&gt;&lt;br /&gt; &lt;b&gt;Probability and Statistics&lt;/b&gt;: Counting (permutation and combinations), probability axioms, Sample space, events, independent events, mutually exclusive events, marginal, conditional and joint probability, Bayes Theorem, conditional expectation and variance, mean, median, mode and standard deviation, correlation, and covariance, random variables, discrete random variables and probability mass functions, uniform, Bernoulli, binomial distribution, Continuous random variables and probability distribution function, uniform, exponential, Poisson, normal, standard normal, t-distribution, chi-squared distributions, cumulative distribution function, Conditional PDF, Central limit theorem, confidence interval, z-test, t-test, chi-squared test. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Linear Algebra&lt;/b&gt;: Vector space, subspaces, linear dependence and independence of vectors, matrices, projection matrix, orthogonal matrix, idempotent matrix, partition matrix and their properties, quadratic forms, systems of linear equations and solutions; Gaussian elimination, eigenvalues and eigenvectors, determinant, rank, nullity, projections, LU decomposition, singular value decomposition. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Calculus and Optimization&lt;/b&gt;: Functions of a single variable, limit, continuity and differentiability, Taylor series, maxima and minima, optimization involving a single variable. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Programming, Data Structures and Algorithms&lt;/b&gt;: Programming in Python, basic data structures: stacks, queues, linked lists, trees, hash tables; Search algorithms: linear search and binary search, basic sorting algorithms: selection sort, bubble sort and insertion sort; divide and conquer: mergesort, quicksort; introduction to graph theory; basic graph algorithms: traversals and shortest path. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Database Management and Warehousing&lt;/b&gt;: ER-model, relational model: relational algebra, tuple calculus, SQL, integrity constraints, normal form, file organization, indexing, data types, data transformation such as normalization, discretization, sampling, compression; data warehouse modelling: schema for multidimensional data models, concept hierarchies, measures: categorization and computations. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Machine Learning&lt;/b&gt;: (i) Supervised Learning: regression and classification problems, simple linear regression, multiple linear regression, ridge regression, logistic regression, k-nearest neighbour, naive Bayes classifier, linear discriminant analysis, support vector machine, decision trees, bias-variance trade-off, cross-validation methods such as leave-one-out (LOO) cross-validation, k-folds crossvalidation, multi-layer perceptron, feed-forward neural network; (ii) Unsupervised Learning: clustering algorithms, k-means/k-medoid, hierarchical clustering, top-down, bottom-up: single-linkage, multiplelinkage, dimensionality reduction, principal component analysis. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;AI&lt;/b&gt;: Search: informed, uninformed, adversarial; logic, propositional, predicate; reasoning under uncertainty topics - conditional independence representation, exact inference through variable elimination, and approximate inference through sampling.&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.binarystudy.com/feeds/5933607735278682884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.binarystudy.com/2024/01/gate-2024-data-science-and-ai-da-paper-syllabus.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/5933607735278682884'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/5933607735278682884'/><link rel='alternate' type='text/html' href='https://www.binarystudy.com/2024/01/gate-2024-data-science-and-ai-da-paper-syllabus.html' title='GATE 2025 - Data Science and Artificial Intelligence (DA Paper) Syllabus'/><author><name>BinaryStudy</name><uri>http://www.blogger.com/profile/15724128477203620724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-872352852572370142.post-2955755587066577553</id><published>2024-11-25T10:17:00.000-08:00</published><updated>2024-11-25T10:17:05.854-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="pip"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><title type='text'>How to uninstall all python packages installed by pip on Windows</title><content type='html'>&lt;p&gt;Use the following command in cmd on Windows to remove all packages installed by pip &amp;minus;&lt;/p&gt;
&lt;pre&gt;
pip freeze &gt; unins &amp;&amp; pip uninstall -y -r unins &amp;&amp; del unins
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.binarystudy.com/feeds/2955755587066577553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.binarystudy.com/2024/11/how-to-uninstall-all-python-packages-installed-by-pip.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/2955755587066577553'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/2955755587066577553'/><link rel='alternate' type='text/html' href='https://www.binarystudy.com/2024/11/how-to-uninstall-all-python-packages-installed-by-pip.html' title='How to uninstall all python packages installed by pip on Windows'/><author><name>BinaryStudy</name><uri>http://www.blogger.com/profile/15724128477203620724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-872352852572370142.post-8644284943873215868</id><published>2024-11-18T17:15:00.024-08:00</published><updated>2024-11-19T09:30:33.757-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="tools"/><category scheme="http://www.blogger.com/atom/ns#" term="whiteboard"/><title type='text'>Online Free Whiteboard</title><content type='html'>&lt;style&gt;
/*body {
  margin: 0;
  font-family: Arial, sans-serif;
  background-color: #f4f4f9;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
  overflow: hidden;
}
  */

.whiteboard-container {
  width: 90%;
  max-width: 1200px;
  margin: 0 auto;
  background: #fff;
  border: 2px solid #ddd;
  border-radius: 8px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

.toolbar {
  display: flex;
  align-items: center;
  padding: 10px;
  background: #eee;
  border-bottom: 2px solid #ddd;
}

.toolbar input,
.toolbar button {
  margin-right: 10px;
  padding: 5px;
  border: none;
  border-radius: 4px;
  font-size: 14px;
  cursor: pointer;
}

.toolbar button {
  background: #4caf50;
  color: white;
}

.toolbar button:hover {
  background: #45a049;
}

.canvas-container {
  position: relative;
  height: 500px;
  display: flex;
  justify-content: center;
  align-items: center;
}

canvas {
  border: 2px solid #ddd;
  border-radius: 4px;
}


	 &lt;/style&gt;

&lt;div class=&quot;container&quot;&gt;
  &lt;div class=&quot;toolbar&quot;&gt;
    &lt;label for=&quot;colorPicker&quot;&gt;Color:&lt;/label&gt;
    &lt;input type=&quot;color&quot; id=&quot;colorPicker&quot; value=&quot;#ff0000&quot;&gt;

    &lt;label for=&quot;brushSize&quot;&gt;Brush Size:&lt;/label&gt;
    &lt;input type=&quot;range&quot; id=&quot;brushSize&quot; min=&quot;1&quot; max=&quot;20&quot; value=&quot;5&quot;&gt;

    &lt;button id=&quot;clearCanvas&quot;&gt;Clear&lt;/button&gt;
    &lt;button id=&quot;undoButton&quot;&gt;Undo&lt;/button&gt;
    &lt;button id=&quot;redoButton&quot;&gt;Redo&lt;/button&gt;
    &lt;button id=&quot;toggleFullscreen&quot;&gt;Fullscreen&lt;/button&gt;
  &lt;/div&gt;
  &lt;div class=&quot;canvas-container&quot;&gt;
    &lt;canvas id=&quot;whiteboard&quot;&gt;&lt;/canvas&gt;
  &lt;/div&gt;
&lt;/div&gt;

    &lt;script&gt;
const canvas = document.getElementById(&quot;whiteboard&quot;);
const ctx = canvas.getContext(&quot;2d&quot;);
const colorPicker = document.getElementById(&quot;colorPicker&quot;);
const brushSize = document.getElementById(&quot;brushSize&quot;);
const clearCanvas = document.getElementById(&quot;clearCanvas&quot;);
const undoButton = document.getElementById(&quot;undoButton&quot;);
const redoButton = document.getElementById(&quot;redoButton&quot;);
const toggleFullscreen = document.getElementById(&quot;toggleFullscreen&quot;);

const canvasContainer = document.querySelector(&quot;.canvas-container&quot;);
canvas.width = canvasContainer.offsetWidth;
canvas.height = canvasContainer.offsetHeight;

let drawing = false;
let color = colorPicker.value;
let lineWidth = brushSize.value;

const paths = []; // Store drawn paths
const redoStack = []; // Store paths for redo

// Function to draw a path
function drawPath(path) {
  ctx.beginPath();
  ctx.strokeStyle = path.color;
  ctx.lineWidth = path.size;
  ctx.lineCap = &quot;round&quot;;
  path.points.forEach((point, index) =&gt; {
    if (index === 0) {
      ctx.moveTo(point.x, point.y);
    } else {
      ctx.lineTo(point.x, point.y);
    }
  });
  ctx.stroke();
  ctx.closePath();
}

// Function to redraw the canvas
function redrawCanvas() {
  ctx.clearRect(0, 0, canvas.width, canvas.height);
  paths.forEach((path) =&gt; drawPath(path));
}

// Start drawing
canvas.addEventListener(&quot;mousedown&quot;, (e) =&gt; {
  drawing = true;
  const currentPath = {
    color: color,
    size: lineWidth,
    points: [{ x: e.offsetX, y: e.offsetY }],
  };
  paths.push(currentPath);
  redoStack.length = 0; // Clear redo stack
});

// Draw on the canvas
canvas.addEventListener(&quot;mousemove&quot;, (e) =&gt; {
  if (!drawing) return;
  const currentPath = paths[paths.length - 1];
  const point = { x: e.offsetX, y: e.offsetY };
  currentPath.points.push(point);
  drawPath(currentPath); // Draw incrementally
});

// Stop drawing
canvas.addEventListener(&quot;mouseup&quot;, () =&gt; {
  drawing = false;
});

// Change brush color
colorPicker.addEventListener(&quot;input&quot;, (e) =&gt; {
  color = e.target.value;
});

// Change brush size
brushSize.addEventListener(&quot;input&quot;, (e) =&gt; {
  lineWidth = e.target.value;
});

// Clear the canvas
clearCanvas.addEventListener(&quot;click&quot;, () =&gt; {
  ctx.clearRect(0, 0, canvas.width, canvas.height);
  paths.length = 0; // Clear paths
  redoStack.length = 0; // Clear redo stack
});

// Undo the last action
undoButton.addEventListener(&quot;click&quot;, () =&gt; {
  if (paths.length &gt; 0) {
    redoStack.push(paths.pop()); // Move the last path to the redo stack
    redrawCanvas();
  }
});

// Redo the last undone action
redoButton.addEventListener(&quot;click&quot;, () =&gt; {
  if (redoStack.length &gt; 0) {
    paths.push(redoStack.pop()); // Move the last redo path back to paths
    redrawCanvas();
  }
});

// Toggle fullscreen mode
toggleFullscreen.addEventListener(&quot;click&quot;, () =&gt; {
  if (!document.fullscreenElement) {
    canvasContainer.requestFullscreen();
  } else {
    document.exitFullscreen();
  }
});

// Adjust canvas size on window resize
window.addEventListener(&quot;resize&quot;, () =&gt; {
  const tempCanvas = document.createElement(&quot;canvas&quot;);
  tempCanvas.width = canvas.width;
  tempCanvas.height = canvas.height;
  const tempCtx = tempCanvas.getContext(&quot;2d&quot;);
  tempCtx.drawImage(canvas, 0, 0);

  canvas.width = canvasContainer.offsetWidth;
  canvas.height = canvasContainer.offsetHeight;
  ctx.drawImage(tempCanvas, 0, 0);
});

	 &lt;/script&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.binarystudy.com/feeds/8644284943873215868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.binarystudy.com/2024/11/online-free-whiteboard.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/8644284943873215868'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/8644284943873215868'/><link rel='alternate' type='text/html' href='https://www.binarystudy.com/2024/11/online-free-whiteboard.html' title='Online Free Whiteboard'/><author><name>BinaryStudy</name><uri>http://www.blogger.com/profile/15724128477203620724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-872352852572370142.post-8996235746064768370</id><published>2024-10-17T10:27:00.000-07:00</published><updated>2024-10-17T10:34:46.509-07:00</updated><title type='text'>HTML Online Editor (Compiler, Interpreter &amp; Runner)</title><content type='html'>&lt;style&gt;
        h1 {
            color: #333;
        }

        textarea {
            width: 100%;
            height: 300px;
            padding: 10px;
            font-size: 16px;
            border: 1px solid #ccc;
            border-radius: 5px;
            resize: none;
        }
        iframe {
            width: 100%;
            height: 300px;
            border: 1px solid #ccc;
            margin-top: 20px;
        }
        button {
            margin-top: 15px;
            padding: 10px 20px;
            font-size: 16px;
            background-color: #4CAF50;
            color: white;
            border: none;
            cursor: pointer;
            border-radius: 5px;
        }
        button:hover {
            background-color: #45a049;
        }
    &lt;/style&gt;
        
    &lt;div class=&quot;container&quot;&gt;
        &lt;!--Textarea for entering HTML code--&gt;
        &lt;textarea id=&quot;html-code&quot; placeholder=&quot;Enter your HTML code here...&quot;&gt;&lt;/textarea&gt;

        &lt;!--Button to compile and display the HTML--&gt;
        &lt;button onclick=&quot;compileHTML()&quot;&gt;Compile HTML&lt;/button&gt;

        &lt;!--Iframe to display the live HTML output--&gt;
        &lt;iframe id=&quot;output&quot; title=&quot;Output&quot;&gt;&lt;/iframe&gt;
    &lt;/div&gt;

    &lt;script&gt;
        // Function to compile and display the HTML code in the iframe
        function compileHTML() {
            const htmlCode = document.getElementById(&quot;html-code&quot;).value;
            const iframe = document.getElementById(&quot;output&quot;);
            
            // Set the content of the iframe to the entered HTML code
            iframe.srcdoc = htmlCode;
        }
    &lt;/script&gt;
</content><link rel='replies' type='application/atom+xml' href='https://www.binarystudy.com/feeds/8996235746064768370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.binarystudy.com/2024/10/html-online-editor-compiler-interpreter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/8996235746064768370'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/8996235746064768370'/><link rel='alternate' type='text/html' href='https://www.binarystudy.com/2024/10/html-online-editor-compiler-interpreter.html' title='HTML Online Editor (Compiler, Interpreter &amp; Runner)'/><author><name>BinaryStudy</name><uri>http://www.blogger.com/profile/15724128477203620724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-872352852572370142.post-8315342139416178313</id><published>2024-10-17T10:20:00.000-07:00</published><updated>2024-10-17T10:37:43.183-07:00</updated><title type='text'>Online Word to HTML Converter</title><content type='html'>&lt;style&gt;



.toolbar {
    background-color: #333;
    padding: 10px;
    border-radius: 5px;
    display: flex;
    justify-content: space-around;
    margin-bottom: 10px;
}

.toolbar button {
    background-color: #fff;
    border: none;
    padding: 8px;
    font-size: 16px;
    cursor: pointer;
    border-radius: 3px;
    outline: none;
    transition: background-color 0.3s ease;
}

.toolbar button:hover {
    background-color: #ddd;
}

.editor {
    border: 1px solid #ccc;
    min-height: 200px;
    padding: 10px;
    background-color: #fff;
    border-radius: 5px;
    font-size: 16px;
}

#html-output {
    width: 100%;
    height: 150px;
    margin-top: 10px;
    border: 1px solid #ccc;
    padding: 10px;
    border-radius: 5px;
    font-family: monospace;
}

.btn {
    display: inline-block;
    margin-top: 10px;
    padding: 10px 20px;
    background-color: #007BFF;
    color: #fff;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    font-size: 16px;
}

.btn:hover {
    background-color: #0056b3;
}

    &lt;/style&gt;
    &lt;div class=&quot;editor-container&quot;&gt;
        &lt;div class=&quot;toolbar&quot;&gt;
            &lt;!-- Buttons for formatting --&gt;
            &lt;button onclick=&quot;formatText(&#39;bold&#39;)&quot; title=&quot;Bold&quot;&gt;&lt;b&gt;B&lt;/b&gt;&lt;/button&gt;
            &lt;button onclick=&quot;formatText(&#39;italic&#39;)&quot; title=&quot;Italic&quot;&gt;&lt;i&gt;I&lt;/i&gt;&lt;/button&gt;
            &lt;button onclick=&quot;formatText(&#39;underline&#39;)&quot; title=&quot;Underline&quot;&gt;&lt;u&gt;U&lt;/u&gt;&lt;/button&gt;
            &lt;button onclick=&quot;formatText(&#39;strikeThrough&#39;)&quot; title=&quot;Strikethrough&quot;&gt;&lt;s&gt;S&lt;/s&gt;&lt;/button&gt;
            &lt;button onclick=&quot;formatText(&#39;insertUnorderedList&#39;)&quot; title=&quot;Bullet List&quot;&gt;&amp;#8226;&lt;/button&gt;
            &lt;button onclick=&quot;formatText(&#39;insertOrderedList&#39;)&quot; title=&quot;Numbered List&quot;&gt;1.&lt;/button&gt;
            &lt;button onclick=&quot;formatText(&#39;justifyLeft&#39;)&quot; title=&quot;Align Left&quot;&gt;L&lt;/button&gt;
            &lt;button onclick=&quot;formatText(&#39;justifyCenter&#39;)&quot; title=&quot;Center&quot;&gt;C&lt;/button&gt;
            &lt;button onclick=&quot;formatText(&#39;justifyRight&#39;)&quot; title=&quot;Align Right&quot;&gt;R&lt;/button&gt;
            &lt;button onclick=&quot;formatText(&#39;createLink&#39;)&quot; title=&quot;Insert Link&quot;&gt;🔗&lt;/button&gt;
            &lt;button onclick=&quot;formatText(&#39;unlink&#39;)&quot; title=&quot;Remove Link&quot;&gt;❌&lt;/button&gt;
            &lt;button onclick=&quot;formatText(&#39;insertImage&#39;)&quot; title=&quot;Insert Image&quot;&gt;🖼️&lt;/button&gt;
        &lt;/div&gt;

        &lt;!-- Editable area for writing content --&gt;
        &lt;div id=&quot;editor&quot; class=&quot;editor&quot; contenteditable=&quot;true&quot;&gt;
            Start writing your content here...
        &lt;/div&gt;
        
        &lt;!-- Button to get HTML code --&gt;
        &lt;button id=&quot;get-html&quot; class=&quot;btn&quot;&gt;Get HTML Code&lt;/button&gt;
        &lt;textarea id=&quot;html-output&quot; class=&quot;html-output&quot; readonly&gt;&lt;/textarea&gt;
    &lt;/div&gt;

    &lt;script&gt;
        // Function to format text using execCommand
function formatText(command) {
    if (command === &#39;createLink&#39;) {
        let url = prompt(&quot;Enter the URL:&quot;);
        if (url) {
            document.execCommand(command, false, url);
        }
    } else if (command === &#39;insertImage&#39;) {
        let imageUrl = prompt(&quot;Enter the image URL:&quot;);
        if (imageUrl) {
            document.execCommand(command, false, imageUrl);
        }
    } else {
        document.execCommand(command, false, null);
    }
}

function cleanWordHTML(input) {
            let output = input;

            // Remove MS Word specific elements and attributes
            output = output.replace(/&lt;\/?w:[^&gt;]*&gt;/gi, &#39;&#39;); // Remove Word XML tags
            output = output.replace(/&lt;\/?o:[^&gt;]*&gt;/gi, &#39;&#39;); // Remove Office tags
            output = output.replace(/&lt;\/?v:[^&gt;]*&gt;/gi, &#39;&#39;); // Remove VML tags
            output = output.replace(/&lt;\/?st1:[^&gt;]*&gt;/gi, &#39;&#39;); // Remove SmartTag tags
            output = output.replace(/style=[&#39;&quot;][^&#39;&quot;]*mso-[^&#39;&quot;]*[&#39;&quot;]/gi, &#39;&#39;); // Remove Word-specific inline styles
            output = output.replace(/\s*mso-[^:]+:[^;&quot;]+;?/gi, &#39;&#39;); // Remove mso- styles
            output = output.replace(/\s*class=[&quot;&#39;][^&quot;&#39;]*[&quot;&#39;]/gi, &#39;&#39;); // Remove classes
            output = output.replace(/&lt;!--(.*?)--&gt;/g, &#39;&#39;); // Remove comments
            output = output.replace(/&lt;[^&gt;]+&gt;\s*&lt;\/[^&gt;]+&gt;/g, &#39;&#39;); // Remove empty tags
            output = output.replace(/&lt;\/?\w+[^&gt;]*&gt;\s*&lt;\/\w+&gt;/g, &#39;&#39;); // Remove empty elements

            // Replace Microsoft Word formatting
            output = output.replace(/&lt;b&gt;/gi, &#39;&lt;strong&gt;&#39;).replace(/&lt;\/b&gt;/gi, &#39;&lt;/strong&gt;&#39;); // Replace &lt;b&gt; with &lt;strong&gt;
            output = output.replace(/&lt;i&gt;/gi, &#39;&lt;em&gt;&#39;).replace(/&lt;\/i&gt;/gi, &#39;&lt;/em&gt;&#39;); // Replace &lt;i&gt; with &lt;em&gt;
            output = output.replace(/&amp;nbsp;/g,&#39; &#39;) ;
            output = output.replace(&#39;\t|\n|\r&#39;,&#39;&#39;);
            output = output.replace(/&lt;br&gt;\s*&lt;br&gt;/gi, &#39;&lt;br&gt;&#39;); // Remove double breaks
            output = output.replace(/\n\s*\n/g, &#39;\n&#39;); // Remove multiple newlines
            output = output.replace(/\n+/g, &#39;\n&#39;).trim(); // Clean extra line breaks
            output = output.replace(/&lt;br&gt;\s/gi, &#39;&lt;/p&gt;&lt;p&gt;&#39;);
            
            return output;
        }

// Get the HTML content of the editor
document.getElementById(&#39;get-html&#39;).addEventListener(&#39;click&#39;, function() {
    let editorContent = document.getElementById(&#39;editor&#39;).innerHTML;
    const htmlOutput = cleanWordHTML(editorContent);
    document.getElementById(&#39;html-output&#39;).value = htmlOutput;
});

    &lt;/script&gt;

</content><link rel='replies' type='application/atom+xml' href='https://www.binarystudy.com/feeds/8315342139416178313/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.binarystudy.com/2024/10/online-word-to-html-converter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/8315342139416178313'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/8315342139416178313'/><link rel='alternate' type='text/html' href='https://www.binarystudy.com/2024/10/online-word-to-html-converter.html' title='Online Word to HTML Converter'/><author><name>BinaryStudy</name><uri>http://www.blogger.com/profile/15724128477203620724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-872352852572370142.post-5994262751039451322</id><published>2024-10-16T19:19:00.000-07:00</published><updated>2024-10-17T10:40:45.911-07:00</updated><title type='text'>Online Basic Resume Builder</title><content type='html'>&lt;style&gt;
    * {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}


.container {
    max-width: 800px;
    margin: auto;
    background-color: #fff;
    padding: 20px;
    box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);
}

h1, h2 {
    color: #333;
    margin-bottom: 20px;
}

label {
    display: block;
    margin-top: 10px;
    font-weight: bold;
}

input {
    width: 100%;
    padding: 8px;
    margin-top: 5px;
    margin-bottom: 15px;
    border: 1px solid #ddd;
    border-radius: 4px;
}

button {
    display: inline-block;
    padding: 10px 15px;
    background-color: #007bff;
    color: white;
    border: none;
    cursor: pointer;
    margin-top: 10px;
}

button:hover {
    background-color: #0056b3;
}

.hidden {
    display: none;
}

.resume {
    margin-top: 20px;
    padding: 20px;
    border: 1px solid #ddd;
    background-color: #f9f9f9;
}

#resume-display h2 {
    margin-bottom: 15px;
    color: #007bff;
}

.resume p {
    margin-bottom: 10px;
}

&lt;/style&gt;
    &lt;div class=&quot;container&quot;&gt;
        &lt;h1&gt;Resume Builder&lt;/h1&gt;
        &lt;form id=&quot;resume-form&quot;&gt;
            &lt;h2&gt;Personal Details&lt;/h2&gt;
            &lt;label&gt;Name:&lt;/label&gt;
            &lt;input id=&quot;name&quot; required=&quot;&quot; type=&quot;text&quot; /&gt;
            &lt;label&gt;Email:&lt;/label&gt;
            &lt;input id=&quot;email&quot; required=&quot;&quot; type=&quot;email&quot; /&gt;
            &lt;label&gt;Phone:&lt;/label&gt;
            &lt;input id=&quot;phone&quot; required=&quot;&quot; type=&quot;tel&quot; /&gt;
            
            &lt;h2&gt;Education&lt;/h2&gt;
            &lt;label&gt;Degree:&lt;/label&gt;
            &lt;input id=&quot;education&quot; required=&quot;&quot; type=&quot;text&quot; /&gt;
            &lt;label&gt;School:&lt;/label&gt;
            &lt;input id=&quot;school&quot; required=&quot;&quot; type=&quot;text&quot; /&gt;
            
            &lt;h2&gt;Work Experience&lt;/h2&gt;
            &lt;label&gt;Job Title:&lt;/label&gt;
            &lt;input id=&quot;job-title&quot; type=&quot;text&quot; /&gt;
            &lt;label&gt;Company:&lt;/label&gt;
            &lt;input id=&quot;company&quot; type=&quot;text&quot; /&gt;
            &lt;label&gt;Years Worked:&lt;/label&gt;
            &lt;input id=&quot;years&quot; type=&quot;text&quot; /&gt;
            
            &lt;h2&gt;Skills&lt;/h2&gt;
            &lt;label&gt;Skills:&lt;/label&gt;
            &lt;input id=&quot;skills&quot; type=&quot;text&quot; /&gt;
            
            &lt;button type=&quot;submit&quot;&gt;Generate Resume&lt;/button&gt;
        &lt;/form&gt;

        &lt;div class=&quot;resume hidden&quot; id=&quot;resume-display&quot;&gt;
            &lt;h2&gt;Generated Resume&lt;/h2&gt;
            &lt;div id=&quot;output&quot;&gt;&lt;/div&gt;
            &lt;button id=&quot;download-btn&quot;&gt;Download as PDF&lt;/button&gt;
        &lt;/div&gt;
    &lt;/div&gt;

    &lt;!--jsPDF Library--&gt;
    &lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js&quot;&gt;&lt;/script&gt;
    &lt;script&gt;
        // Event listener to handle form submission and resume generation
document.getElementById(&#39;resume-form&#39;).addEventListener(&#39;submit&#39;, function(event) {
    event.preventDefault();

    // Get values from form inputs
    const name = document.getElementById(&#39;name&#39;).value;
    const email = document.getElementById(&#39;email&#39;).value;
    const phone = document.getElementById(&#39;phone&#39;).value;
    const education = document.getElementById(&#39;education&#39;).value;
    const school = document.getElementById(&#39;school&#39;).value;
    const jobTitle = document.getElementById(&#39;job-title&#39;).value;
    const company = document.getElementById(&#39;company&#39;).value;
    const years = document.getElementById(&#39;years&#39;).value;
    const skills = document.getElementById(&#39;skills&#39;).value.split(&#39;,&#39;);

    // Create resume content
    const resumeContent = `
        &lt;h3&gt;${name}&lt;/h3&gt;
        &lt;p&gt;Email: ${email}&lt;/p&gt;
        &lt;p&gt;Phone: ${phone}&lt;/p&gt;
        
        &lt;h4&gt;Education&lt;/h4&gt;
        &lt;p&gt;${education} from ${school}&lt;/p&gt;
        
        &lt;h4&gt;Work Experience&lt;/h4&gt;
        &lt;p&gt;${jobTitle} at ${company} (${years})&lt;/p&gt;
        
        &lt;h4&gt;Skills&lt;/h4&gt;
        &lt;ul&gt;
            ${skills.map(skill =&gt; `&lt;li&gt;${skill.trim()}&lt;/li&gt;`).join(&#39;&#39;)}
        &lt;/ul&gt;
    `;

    // Display the resume
    document.getElementById(&#39;output&#39;).innerHTML = resumeContent;
    document.getElementById(&#39;resume-display&#39;).classList.remove(&#39;hidden&#39;);
});

// Event listener for downloading the resume as PDF
document.getElementById(&#39;download-btn&#39;).addEventListener(&#39;click&#39;, function() {
    const { jsPDF } = window.jspdf;
    const doc = new jsPDF();

    // Get the text content from the generated resume
    const name = document.getElementById(&#39;name&#39;).value;
    const email = document.getElementById(&#39;email&#39;).value;
    const phone = document.getElementById(&#39;phone&#39;).value;
    const education = document.getElementById(&#39;education&#39;).value;
    const school = document.getElementById(&#39;school&#39;).value;
    const jobTitle = document.getElementById(&#39;job-title&#39;).value;
    const company = document.getElementById(&#39;company&#39;).value;
    const years = document.getElementById(&#39;years&#39;).value;
    const skills = document.getElementById(&#39;skills&#39;).value.split(&#39;,&#39;).map(skill =&gt; skill.trim());

    // Formatting the content for the PDF
    doc.setFontSize(18);
    doc.text(name, 10, 20);
    
    doc.setFontSize(12);
    doc.text(`Email: ${email}`, 10, 30);
    doc.text(`Phone: ${phone}`, 10, 40);
    
    doc.setFontSize(16);
    doc.text(&quot;Education&quot;, 10, 60);
    doc.setFontSize(12);
    doc.text(`${education} from ${school}`, 10, 70);
    
    doc.setFontSize(16);
    doc.text(&quot;Work Experience&quot;, 10, 90);
    doc.setFontSize(12);
    doc.text(`${jobTitle} at ${company} (${years})`, 10, 100);
    
    doc.setFontSize(16);
    doc.text(&quot;Skills&quot;, 10, 120);
    doc.setFontSize(12);
    skills.forEach((skill, index) =&gt; {
        doc.text(`- ${skill}`, 10, 130 + (index * 10));
    });

    // Save the PDF
    doc.save(`${name}-resume.pdf`);
});

    &lt;/script&gt;
</content><link rel='replies' type='application/atom+xml' href='https://www.binarystudy.com/feeds/5994262751039451322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.binarystudy.com/2024/10/online-basic-resume-builder.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/5994262751039451322'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/5994262751039451322'/><link rel='alternate' type='text/html' href='https://www.binarystudy.com/2024/10/online-basic-resume-builder.html' title='Online Basic Resume Builder'/><author><name>BinaryStudy</name><uri>http://www.blogger.com/profile/15724128477203620724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-872352852572370142.post-6428216052026859076</id><published>2024-09-13T20:54:00.000-07:00</published><updated>2024-09-13T21:39:35.060-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Artificial Intelligence"/><category scheme="http://www.blogger.com/atom/ns#" term="Large Language Models (LLMs)"/><category scheme="http://www.blogger.com/atom/ns#" term="OpenAI"/><title type='text'>OpenAI o1 Model: Learning to Reason with LLMs</title><content type='html'>OpenAI&#39;s &lt;b&gt;o1&lt;/b&gt; model represents a significant advancement in the field of &lt;b&gt;Large Language Model&lt;/b&gt;s (LLMs). Designed to enhance reasoning capabilities, o1 aims to bridge the gap between LLMs and human-level reasoning.&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;a href=&quot;https://openai.com/index/introducing-openai-o1-preview/&quot;&gt;&lt;img alt=&quot;OpenAI o1Model&quot; border=&quot;0&quot; data-original-height=&quot;813&quot; data-original-width=&quot;1645&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirDdJimGdg421OERIFFvoe9l8MsVWR9mvn7lN-eP4S9TQtLBSwmIa1VrcXcyj9tZJrmki0wdbgajwHmQUhkmdKlTrCgWKe1AF6ebgQMZxlPoFWnQmGmRIz7YMvgEtTtdYOSGXFrNIHiJeDiTdaxPZ0I1Y_1TIjQpID9WUUk-b7MtZBIpcn5FPO6LUO4tE_/s16000/openai_o1_model.jpg&quot; title=&quot;OpenAI o1Model - Announcement&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://openai.com/index/introducing-openai-o1-preview/&quot;&gt;Image Source: OpenAI website&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Understanding the o1 Model&lt;/h2&gt;The &lt;b&gt;o1 model&lt;/b&gt; is a continuation of OpenAI&#39;s research into developing more sophisticated and capable AI systems. It builds upon the foundation of previous models like GPT-3, incorporating new techniques and architectures to improve reasoning abilities.&lt;div&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Key Features&lt;/h3&gt;Key features and advancements of the o1 model include:&lt;div&gt;&lt;b&gt;1. Enhanced Reasoning:&lt;/b&gt; The model is designed to be better at understanding and following logical chains of reasoning.&lt;br /&gt;&lt;b&gt;2. Improved Contextual Understanding:&lt;/b&gt; o1 can better grasp the nuances of language and context, leading to more accurate and relevant responses.&lt;br /&gt;&lt;b&gt;3. Reduced Hallucinations: &lt;/b&gt;The model is less likely to generate nonsensical or misleading information.&lt;br /&gt;&lt;b&gt;4. Increased Factuality: &lt;/b&gt;o1 aims to provide more accurate and factual responses to queries.&lt;br /&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;How o1 Works&lt;/h2&gt;&lt;/div&gt;&lt;div&gt;The o1 model is trained on a massive dataset of text and code, allowing it to learn patterns and relationships within language. It uses a transformer architecture, which is particularly effective for understanding and generating human-like text.&lt;br /&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Key components of the o1 model&lt;/h3&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;1. Self-attention mechanism: &lt;/b&gt;Helps the model understand the relationships between different parts of a sentence or text.&lt;br /&gt;&lt;b&gt;2. Transformer architecture: &lt;/b&gt;A powerful neural network architecture that has been successful in various NLP tasks.&lt;br /&gt;&lt;b&gt;3. Fine-tuning:&lt;/b&gt; The model is further trained on specific tasks or datasets to improve its performance on those areas.&lt;br /&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Applications of the o1 Model&lt;/h2&gt;The o1 model has a wide range of potential applications, including:&lt;/div&gt;&lt;div&gt;&lt;b&gt;1. Natural language processing:&lt;/b&gt; Generating human-quality text, translation, and summarization.&lt;br /&gt;&lt;b&gt;2. Question answering: &lt;/b&gt;Providing informative and accurate answers to complex questions.&lt;br /&gt;&lt;b&gt;3. Creative writing: &lt;/b&gt;Assisting with writing tasks like generating stories, poems, or code.&lt;br /&gt;&lt;b&gt;4. Customer service:&lt;/b&gt; Providing automated customer support and answering inquiries.&lt;br /&gt;&lt;b&gt;5. Research and education:&lt;/b&gt; Assisting with research tasks and educational materials.&lt;br /&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Future Directions&lt;/h2&gt;OpenAI&#39;s o1 model represents a significant step forward in LLM capabilities. As research continues, we can expect to see even more advanced models with improved reasoning, understanding, and generation capabilities. The future of LLMs holds great promise for transforming various industries and enhancing human capabilities.&lt;br /&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Latest Updates&lt;/h2&gt;As of September 2024, OpenAI has released the o1 model. It&#39;s part of a series of AI models designed to improve reasoning and problem-solving capabilities. You can find more information about the o1 model on OpenAI&#39;s official website: &lt;a href=&quot;https://openai.com/index/introducing-openai-o1-preview/&quot;&gt;OpenAI&#39;s announcement&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;References&lt;/h2&gt;&lt;a href=&quot;https://openai.com/index/introducing-openai-o1-preview/&quot;&gt;&lt;/a&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;https://openai.com/index/introducing-openai-o1-preview/&quot;&gt;&lt;/a&gt;&lt;li&gt;&lt;a href=&quot;https://openai.com/index/introducing-openai-o1-preview/&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://openai.com/index/introducing-openai-o1-preview/&quot;&gt;Learning to Reason with LLMs | OpenA&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://openai.com/index/openai-o1-mini-advancing-cost-efficient-reasoning/&quot;&gt;OpenAI o1 mini&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://deepmind.google/technologies/gemini/pro/&quot;&gt;Gemini Pro - Google DeepMind&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;font-size: 12px; margin: 0px; text-align: center;&quot;&gt;Advertisements&lt;/div&gt;&lt;p&gt;&lt;!--Showing Google Ads--&gt;&lt;script async=&quot;&quot; crossorigin=&quot;anonymous&quot; src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1380317796882611&quot;&gt;&lt;/script&gt;&lt;!--in_post_ads1--&gt;&lt;ins class=&quot;adsbygoogle&quot; data-ad-client=&quot;ca-pub-1380317796882611&quot; data-ad-format=&quot;auto&quot; data-ad-slot=&quot;6417412882&quot; data-full-width-responsive=&quot;true&quot; style=&quot;display: block;&quot;&gt;&lt;/ins&gt;&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;&lt;/p&gt;&lt;span&gt;&lt;h4 style=&quot;font-family: Merriweather, Georgia, serif; font-size: 16px;&quot;&gt;&lt;/h4&gt;&lt;h3 style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium; text-align: left;&quot;&gt;Useful Resources&lt;/h3&gt;&lt;/span&gt;&lt;h4&gt;&lt;span&gt;&lt;ul style=&quot;font-weight: 400;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/p/how-to.html&quot; style=&quot;font-family: inherit;&quot;&gt;How To&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/Data%20Science&quot;&gt;Data Science&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/PyTorch&quot;&gt;PyTorch&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/Python%20Programming&quot; style=&quot;font-family: inherit;&quot;&gt;Python Programming&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/p/computer-vision.html&quot;&gt;Computer Vision&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;/h4&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.binarystudy.com/feeds/6428216052026859076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.binarystudy.com/2024/09/openai-o1-model-learning-to-reason-with-llms.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/6428216052026859076'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/6428216052026859076'/><link rel='alternate' type='text/html' href='https://www.binarystudy.com/2024/09/openai-o1-model-learning-to-reason-with-llms.html' title='OpenAI o1 Model: Learning to Reason with LLMs'/><author><name>BinaryStudy</name><uri>http://www.blogger.com/profile/15724128477203620724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirDdJimGdg421OERIFFvoe9l8MsVWR9mvn7lN-eP4S9TQtLBSwmIa1VrcXcyj9tZJrmki0wdbgajwHmQUhkmdKlTrCgWKe1AF6ebgQMZxlPoFWnQmGmRIz7YMvgEtTtdYOSGXFrNIHiJeDiTdaxPZ0I1Y_1TIjQpID9WUUk-b7MtZBIpcn5FPO6LUO4tE_/s72-c/openai_o1_model.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-872352852572370142.post-8604622661905484580</id><published>2024-07-14T10:40:00.000-07:00</published><updated>2024-07-14T10:42:29.040-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CIFAR-10"/><category scheme="http://www.blogger.com/atom/ns#" term="Keras"/><category scheme="http://www.blogger.com/atom/ns#" term="TensorFlow"/><title type='text'>How to load and visualize CIFAR 10 dataset using TensorFlow Keras?</title><content type='html'>&lt;p style=&quot;text-align: left;&quot;&gt;In this article, I will show you how to load and visualize the CIFAR -10 Dataset.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Please watch our video on YouTube -&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;iframe allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; src=&quot;https://www.youtube.com/embed/640ipvR0HhQ?si=fQ2vIRyA1H_m7Xxb&quot; title=&quot;YouTube video player&quot; width=&quot;560&quot;&gt;&lt;/iframe&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;p style=&quot;text-align: left;&quot;&gt;CIFAR -10 dataset consists of sixty thousand 32 by 32 color images. &lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Here the width and height of each image is 32 pixels.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;And, each image has three channels RGB, red, green and, blue.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Further, these sixty thousand images are classified into 10 classes. So Each class has six thousand images.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Here 10 classes are airplane, automobile, bird …, etc.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;The labels of the images are from 0 to 9. So the label of the airplane is 0, and the label of the automobile is 1, likewise, the label of the truck is 9.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Further, the images are categorized into 50,000 training images and 10,000 test images.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Now let&#39;s load the dataset and visualize some images &lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p style=&quot;text-align: left;&quot;&gt;For this, we need to import some libraries&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;So let&#39;s import first &quot;tensorflow as tf&quot;&lt;/p&gt;And &quot;from tensorflow import keras&quot;&lt;br /&gt;&lt;br /&gt;For visualizing images we &quot;import matplotlib.pyplot as plt&quot;&lt;br /&gt;&lt;p style=&quot;text-align: left;&quot;&gt;So let’s load CIFAR10 dataset&lt;/p&gt;For this, we use keras.datasets.cifar10.load_data().&lt;br /&gt;&lt;br /&gt;This will return two tuples. One for training images and other for test images.&lt;br /&gt;&lt;br /&gt;Each tuple will have the image and label.&lt;br /&gt;&lt;br /&gt;The first tuple will have training images and their labels and the second tuple will have test images and their labels.&lt;br /&gt;&lt;br /&gt;Run the cell and you will get the training and test images along with their labels.&lt;br /&gt;&lt;br /&gt;Now we have loaded the dataset.&lt;br /&gt;&lt;br /&gt;Let&#39;s check the shape of the training images&lt;br /&gt;&lt;br /&gt;X_train.shape&lt;br /&gt;&lt;br /&gt;It returns 50,000 by 32 by 32 by 3. &lt;br /&gt;&lt;br /&gt;50 thousand training images each image is of height and width of 32 pixels each and each image consists of three channels rgb, red green and blue as we discussed.&lt;br /&gt;&lt;br /&gt;Let&#39;s check the shape of the training labels&lt;br /&gt;&lt;br /&gt;Y_train.shape&lt;br /&gt;&lt;br /&gt;It returns 50 thousand by 1. The labels are from 0 to 9.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Let&#39;s visualize a single training image&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;X_train[0]&lt;br /&gt;&lt;br /&gt;It returns ndarray of shape 32 by 32 by 3.&lt;br /&gt;&lt;br /&gt;You can also use plt.X_train[0]&lt;br /&gt;&lt;br /&gt;It’s a frog. And the label of the frog class is 6. &lt;br /&gt;&lt;br /&gt;Let’s check the label of this image.&lt;br /&gt;&lt;br /&gt;y_train[0]&lt;br /&gt;&lt;br /&gt;It returns an array of the single value that is the label of the image. Here, the label is 6. And it is the label of the frog as we have seen here.&lt;br /&gt;&lt;br /&gt;We can also visualize multiple images using Matplotlib.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.binarystudy.com/feeds/8604622661905484580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.binarystudy.com/2024/07/how-to-load-and-visualize-cifar-10-using-tensorflow-keras.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/8604622661905484580'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/8604622661905484580'/><link rel='alternate' type='text/html' href='https://www.binarystudy.com/2024/07/how-to-load-and-visualize-cifar-10-using-tensorflow-keras.html' title='How to load and visualize CIFAR 10 dataset using TensorFlow Keras?'/><author><name>BinaryStudy</name><uri>http://www.blogger.com/profile/15724128477203620724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/640ipvR0HhQ/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-872352852572370142.post-9185396352487131390</id><published>2024-05-25T12:39:00.000-07:00</published><updated>2024-05-26T00:03:22.149-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Machine Learning"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><title type='text'>Why is Python Widely Used for Machine Learning and AI?</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h2&gt;Introduction&lt;/h2&gt;&lt;p&gt;Machine learning has emerged as a transformative technology with applications across various industries, from healthcare and finance to entertainment and autonomous vehicles. At the heart of this revolution is the programming language Python, which has become the de facto choice for building machine learning models. In this article, we will explore the reasons why Python is so widely used in the field of machine learning and artificial intelligence.&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;&lt;span&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/span&gt;1. Ease of Learning and Readability&lt;/h2&gt;&lt;p&gt;Python is known for its simplicity and readability. Its clean and concise syntax resembles the English language, making it accessible to both experienced programmers and beginners. This ease of learning reduces the barriers for newcomers to enter the field of machine learning.&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;2. Vibrant Ecosystem of Libraries&lt;/h2&gt;&lt;p&gt;Python boasts an extensive collection of libraries and frameworks specifically designed for machine learning and data science. The most notable among these is&amp;nbsp;&lt;b&gt;Scikit-Learn&lt;/b&gt;, a powerful library for building and training machine learning models. Additionally, libraries like&amp;nbsp;&lt;b&gt;TensorFlow&lt;/b&gt;&amp;nbsp;and&amp;nbsp;&lt;b&gt;PyTorch&lt;/b&gt;&amp;nbsp;are widely used for deep learning, a subset of machine learning that focuses on neural networks.&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;3. Community Support&lt;/h2&gt;&lt;p&gt;Python has a thriving community of developers and data scientists who actively contribute to open-source projects. This community support ensures that Python&#39;s machine learning libraries are constantly updated, well-documented, and feature-rich. It also means that when you encounter a problem or need assistance, you&#39;re likely to find a solution within the Python community.&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;4. Versatility&lt;/h2&gt;&lt;p&gt;Python&#39;s versatility is one of its standout features. You can use it for a wide range of tasks, from&amp;nbsp;&lt;b&gt;data preprocessing&amp;nbsp;&lt;/b&gt;and&amp;nbsp;&lt;b&gt;visualization&lt;/b&gt;&amp;nbsp;to building complex machine learning models and deploying them in production. This versatility simplifies the development pipeline and reduces the need to switch between different languages for different tasks.&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;5. Integration with Other Technologies&lt;/h2&gt;&lt;p&gt;Python&#39;s ability to integrate seamlessly with other technologies is a significant advantage in machine learning. You can easily incorporate machine learning models into web applications, databases, and big data processing frameworks like&amp;nbsp;&lt;b&gt;Apache Spark&lt;/b&gt;. This interoperability streamlines the deployment of machine learning solutions in real-world applications.&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;6. Abundance of Tutorials and Learning Resources&lt;/h2&gt;&lt;p&gt;Learning machine learning can be challenging, but Python makes the journey easier. There is an abundance of high-quality tutorials, courses, and books available that teach machine learning with Python. Popular online platforms like Coursera, edX, Tutorials Point and Udacity offer courses that cater to learners of all levels.&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;7. Data Visualization Capabilities&lt;/h2&gt;&lt;p&gt;Effective data visualization is crucial in machine learning, as it helps analysts and stakeholders understand complex datasets and model outputs. Python has libraries like&amp;nbsp;&lt;b&gt;Matplotlib&lt;/b&gt;&amp;nbsp;and&amp;nbsp;&lt;b&gt;Seaborn&lt;/b&gt;&amp;nbsp;that provide robust data visualization capabilities, enabling you to create informative charts and graphs.&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;8. Large and Diverse Dataset Access&lt;/h2&gt;&lt;p&gt;Python offers numerous libraries and APIs to access and work with data. Whether you need to scrape data from websites, connect to databases, or work with big data frameworks like&amp;nbsp;&lt;b&gt;Hadoop&lt;/b&gt;, Python has you covered. Its versatility in data handling is particularly valuable in the data preprocessing phase of machine learning.&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;9. State-of-the-Art Deep Learning&lt;/h2&gt;&lt;p&gt;Deep learning, a subset of machine learning that focuses on neural networks, has seen incredible advancements in recent years. Python-based deep learning frameworks like&amp;nbsp;&lt;b&gt;TensorFlow&lt;/b&gt;&amp;nbsp;and&amp;nbsp;&lt;b&gt;PyTorch&lt;/b&gt;&amp;nbsp;are at the forefront of these developments. They provide researchers and developers with the tools to build and experiment with cutting-edge neural network architectures.&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;10. Community and Industry Adoption&lt;/h2&gt;&lt;p&gt;Python&#39;s popularity in the machine learning community has translated into widespread industry adoption. Many tech giants, startups, and research institutions use Python for developing machine learning solutions. This broad adoption ensures that Python remains a relevant and valuable skill for professionals in the field.&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;11. Availability of Pretrained Models&lt;/h2&gt;&lt;p&gt;Python&#39;s machine learning ecosystem includes access to a wealth of pretrained models. These models, trained on massive datasets, can be fine-tuned for specific tasks, saving considerable time and computational resources. This availability of pretrained models accelerates the development of machine learning applications.&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;12. Cross-Platform Compatibility&lt;/h2&gt;&lt;p&gt;Python is cross-platform, meaning you can develop machine learning models on Windows, macOS, or Linux environments. This flexibility is essential for both individual developers and teams working on diverse operating systems.&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;13. Scalability&lt;/h2&gt;&lt;p&gt;Python is often criticized for being slower than lower-level languages like&amp;nbsp;&lt;b&gt;C++&lt;/b&gt;&amp;nbsp;or&amp;nbsp;&lt;b&gt;Java&lt;/b&gt;. However, advancements in libraries and tools like&amp;nbsp;&lt;b&gt;Numba&lt;/b&gt;&amp;nbsp;and&amp;nbsp;&lt;b&gt;Cython&lt;/b&gt;&amp;nbsp;have made Python more performant. Additionally, for computationally intensive tasks, Python can leverage parallel processing and distributed computing with libraries like&amp;nbsp;&lt;b&gt;Dask&lt;/b&gt;&amp;nbsp;and&amp;nbsp;&lt;b&gt;Apache Spark&lt;/b&gt;.&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;14. Real-World Applications&lt;/h2&gt;&lt;p&gt;Python has proven its worth in a wide range of real-world machine learning applications. It&#39;s used for natural language processing (NLP), image recognition, recommendation systems, autonomous vehicles, fraud detection, and much more. Its versatility and robust libraries make it suitable for tackling various challenges.&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;Conclusion&lt;/h2&gt;&lt;p&gt;In conclusion, Python&#39;s dominance in the field of machine learning can be attributed to its simplicity, extensive libraries, strong community support, versatility, and seamless integration with other technologies. As machine learning continues to evolve and shape industries, Python&#39;s role as the go-to language for data science and artificial intelligence is likely to strengthen. If you&#39;re interested in machine learning, Python is undoubtedly a language worth mastering.&lt;br /&gt;&lt;br /&gt;The combination of Python&#39;s ease of use, powerful libraries, and real-world applicability makes it a top choice for anyone embarking on a journey into the fascinating world of machine learning. With the right resources and dedication, you can harness the power of Python to unlock the potential of artificial intelligence and data-driven insights.&lt;/p&gt;&lt;h2&gt;FAQs&lt;/h2&gt;&lt;p&gt;&lt;/p&gt;&lt;h3&gt;Q1: Why is Python considered the best programming language for machine learning?&lt;/h3&gt;Python is widely regarded as an excellent choice for machine learning due to its simplicity, extensive libraries like Scikit-Learn and TensorFlow, and a strong community. Its versatility and ease of learning make it a top pick for both beginners and experienced developers.&lt;br /&gt;&lt;h3&gt;Q2: Are there any downsides to using Python for machine learning?&lt;/h3&gt;While Python is versatile and user-friendly, it may not be the best choice for extremely high-performance applications that require low-level optimizations. In such cases, languages like C++ or Julia may be preferred. Additionally, Python&#39;s Global Interpreter Lock (GIL) can limit its parallel processing capabilities.&lt;br /&gt;&lt;h3&gt;Q3: How can I get started with machine learning in Python if I&#39;m a beginner?&lt;/h3&gt;If you&#39;re new to machine learning and Python, there are many online resources and courses available, such as those on Coursera, edX, and Udacity. Start with basic Python programming, and then gradually delve into machine learning libraries like Scikit-Learn.&lt;br /&gt;&lt;h3&gt;Q4: Which Python libraries are most commonly used for machine learning?&lt;/h3&gt;Scikit-Learn is a widely-used library for traditional machine learning algorithms. For deep learning, TensorFlow and PyTorch are popular choices. Additionally, libraries like Matplotlib and Seaborn are used for data visualization.&lt;br /&gt;&lt;h3&gt;Q5: Is Python suitable for deep learning and neural networks?&lt;/h3&gt;Yes, Python is suitable for deep learning. TensorFlow and PyTorch are two of the most popular deep learning frameworks that use Python as their primary language. These frameworks provide tools for building and training neural networks.&lt;br /&gt;&lt;h3&gt;Q6: Can I use Python for natural language processing (NLP) and image recognition in machine learning?&lt;/h3&gt;Absolutely. Python is commonly used for NLP tasks with libraries like NLTK and spaCy. For image recognition, deep learning frameworks like TensorFlow and PyTorch are employed. Python&#39;s extensive ecosystem supports a wide range of machine learning applications.&lt;br /&gt;&lt;h3&gt;Q7: How important is Python&#39;s community and support for machine learning?&lt;/h3&gt;Python&#39;s active and supportive community is vital for machine learning. It ensures that libraries and frameworks receive constant updates, bug fixes, and new features. The community also provides a wealth of tutorials and solutions to common problems, making learning and development easier.&lt;br /&gt;&lt;h3&gt;Q8: Are there performance issues with Python in machine learning?&lt;/h3&gt;Python can be slower than lower-level languages like C++ for certain tasks. However, Python&#39;s performance has improved with the introduction of tools like Numba and Cython. Additionally, for scalability and parallel processing, libraries like Dask and Apache Spark can be utilized.&lt;br /&gt;&lt;h3&gt;Q9: What types of real-world applications use Python for machine learning?&lt;/h3&gt;Python is employed in various real-world applications, including natural language processing for chatbots and language translation, image recognition for autonomous vehicles and security systems, recommendation systems for e-commerce, fraud detection in finance, and healthcare applications like disease diagnosis.&lt;br /&gt;&lt;h3&gt;Q10: Can I use Python for machine learning on different operating systems?&lt;/h3&gt;Yes, Python is cross-platform and can be used on Windows, macOS, and Linux. This flexibility is advantageous for developers working in diverse environments.&lt;br /&gt;&lt;br /&gt;These FAQs provide additional insights into the reasons behind Python&#39;s widespread use in machine learning and address common questions that individuals may have when considering Python as their language of choice for machine learning projects.&lt;div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;font-size: 12px; margin: 0px; text-align: center;&quot;&gt;Advertisements&lt;/div&gt;&lt;p&gt;&lt;!--Showing Google Ads--&gt;&lt;script async=&quot;&quot; crossorigin=&quot;anonymous&quot; src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1380317796882611&quot;&gt;&lt;/script&gt;&lt;!--in_post_ads1--&gt;&lt;ins class=&quot;adsbygoogle&quot; data-ad-client=&quot;ca-pub-1380317796882611&quot; data-ad-format=&quot;auto&quot; data-ad-slot=&quot;6417412882&quot; data-full-width-responsive=&quot;true&quot; style=&quot;display: block;&quot;&gt;&lt;/ins&gt;&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;&lt;/p&gt;&lt;span&gt;&lt;h4 style=&quot;font-family: Merriweather, Georgia, serif; font-size: 16px;&quot;&gt;&lt;div style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium;&quot;&gt;Useful Resources:&lt;/div&gt;&lt;/h4&gt;&lt;/span&gt;&lt;h4&gt;&lt;span&gt;&lt;ul style=&quot;font-weight: 400;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/p/how-to.html&quot; style=&quot;font-family: inherit;&quot;&gt;How To&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/Data%20Science&quot;&gt;Data Science&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/PyTorch&quot;&gt;PyTorch&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/Python%20Programming&quot; style=&quot;font-family: inherit;&quot;&gt;Python Programming&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/p/computer-vision.html&quot;&gt;Computer Vision&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;/h4&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.binarystudy.com/feeds/9185396352487131390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.binarystudy.com/2024/05/why-is-python-widely-used-for-machine-learning-ai.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/9185396352487131390'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/9185396352487131390'/><link rel='alternate' type='text/html' href='https://www.binarystudy.com/2024/05/why-is-python-widely-used-for-machine-learning-ai.html' title='Why is Python Widely Used for Machine Learning and AI?'/><author><name>BinaryStudy</name><uri>http://www.blogger.com/profile/15724128477203620724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-872352852572370142.post-3640877935995301496</id><published>2024-05-19T00:04:00.000-07:00</published><updated>2024-05-26T00:04:46.329-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Django"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="Web Development"/><title type='text'>A Comprehensive Python Django Developer Roadmap</title><content type='html'>&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-family: Consolas;&quot;&gt;Python Django&lt;/span&gt;&lt;/b&gt; is a powerful and popular web framework that enables developers to build &lt;b&gt;robust &lt;/b&gt;and &lt;b&gt;scalable &lt;/b&gt;web applications quickly and efficiently. Whether you&#39;re a beginner looking to start your journey in web development or an experienced developer seeking to enhance your &lt;b&gt;Django skills&lt;/b&gt;, having a well-structured &lt;b&gt;roadmap &lt;/b&gt;can be immensely helpful.&amp;nbsp;&lt;/p&gt;&lt;p&gt;In this article, we&#39;ll provide a comprehensive Django developer roadmap that covers all the essential concepts and skills you need to become proficient in Django development.&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;p&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Table of  Content &lt;br /&gt;&lt;/h3&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;#Python_Basics &quot;&gt;Python Basics&amp;nbsp;&lt;/a&gt;&lt;/li&gt;&lt;li style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;#Web_Development&quot;&gt;Web Development Fundamentals&lt;/a&gt;&lt;/li&gt;&lt;li style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;#Django_Fundamentals&quot;&gt;Django Fundamentals&lt;/a&gt;&lt;/li&gt;&lt;li style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;#Database_and_ORM&quot;&gt;Database and ORM&lt;/a&gt;&lt;/li&gt;&lt;li style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;#Advanced_Django&quot;&gt;Advanced Django Concepts&lt;/a&gt;&lt;/li&gt;&lt;li style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;#Testing_in_Django&quot;&gt;Testing in Django&lt;/a&gt;&lt;/li&gt;&lt;li style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;#Security&quot;&gt;Security&lt;/a&gt;&lt;/li&gt;&lt;li style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;#Deployment&quot;&gt;Deployment&lt;/a&gt;&lt;/li&gt;&lt;li style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;#Continuous_Integration&quot;&gt;Continuous Integration and Deployment(CI/CD)&lt;/a&gt;&lt;/li&gt;&lt;li style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;#Keep_Learning&quot;&gt;Keep Learning and Exploring &lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;#Conclusion&quot;&gt;Conclusion&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h2 id=&quot;Python_Basics&quot; style=&quot;text-align: left;&quot;&gt;1. Python Basics&lt;/h2&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Before diving into Django, it&#39;s crucial to have a solid understanding of the Python programming language since Django is built on top of Python. Familiarize yourself with Python&#39;s &lt;b&gt;&lt;span style=&quot;font-family: Consolas;&quot;&gt;syntax, data structures, control flow, functions, and object-oriented&lt;/span&gt;&lt;/b&gt; programming. There are many online resources and tutorials available to help you get started with Python.&lt;/p&gt;&lt;h2 id=&quot;Web_Development&quot; style=&quot;text-align: left;&quot;&gt;2. Web Development Fundamentals&lt;/h2&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;To be an effective Django developer, you should have a good grasp of essential web development concepts, including -&lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;HTTP Protocol&lt;/b&gt;: Understand the HTTP methods (GET, POST, PUT, DELETE) and status codes (200, 404, 500, etc.) that form the backbone of web communication. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;HTML &amp;amp; CSS&lt;/b&gt;: Learn the basics of HTML for creating the structure of web pages and CSS for styling them. Understanding the Document Object Model (DOM) is crucial for manipulating web page elements dynamically.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;JavaScrip&lt;/b&gt;t: While Django primarily handles backend development, having a foundational understanding of JavaScript will be beneficial, especially for frontend interactions and AJAX requests.&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;Django_Fundamentals&quot; style=&quot;text-align: left;&quot;&gt;3. Django Fundamentals&lt;/h2&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Now that you have a solid foundation in Python and web development, it&#39;s time to delve into Django itself -&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;Installation and Setup&lt;/b&gt;: Install Django and set up a new project to get familiar with the project structure.&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;Models&lt;/b&gt;: Learn how to define database models using Django&#39;s Object-Relational Mapping (ORM) to interact with the database.&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;Views&lt;/b&gt;: Understand how to create views that handle user requests and return appropriate responses.&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;Templates&lt;/b&gt;: Master Django&#39;s template system, which allows you to design the frontend of your web application.&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;URL Routing&lt;/b&gt;: Learn how to map URLs to views using Django&#39;s URL configuration.&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;Forms&lt;/b&gt;: Explore Django&#39;s form handling capabilities for user input validation and data processing.&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;Database_and_ORM&quot; style=&quot;text-align: left;&quot;&gt;4. Database and ORM&lt;/h2&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Deepen your understanding of databases and the Django ORM -&lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;Database Concepts&lt;/b&gt;: Familiarize yourself with relational database concepts, such as tables, fields, primary keys, and relationships.&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;Model Relationships&lt;/b&gt;: Learn about one-to-one, one-to-many, and many-to-many relationships in Django models.&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;QuerySets&lt;/b&gt;: Understand how to use QuerySets to perform complex database queries and retrieve data efficiently.&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;Migrations&lt;/b&gt;: Learn about database migrations and how Django manages changes to your database schema.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;h2 id=&quot;Advanced_Django&quot; style=&quot;text-align: left;&quot;&gt;5. Advanced Django Concepts&lt;/h2&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Expand your Django skills by diving into more advanced topics - &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;Class-Based Views&lt;/b&gt;: Explore Django&#39;s class-based views for a more organized and reusable code structure.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;Middleware&lt;/b&gt;: Understand how middleware works and how to use it to perform tasks like authentication, security, and request/response processing.&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;Authentication and Authorization&lt;/b&gt;: Learn how to implement user authentication and authorization to secure your web application.&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;Django REST framework&lt;/b&gt;: Familiarize yourself with the Django REST framework for building powerful APIs.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;Caching and Optimization&lt;/b&gt;: Discover techniques for caching data and optimizing Django applications for better performance.&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;Testing_in_Django&quot; style=&quot;text-align: left;&quot;&gt;6. Testing in Django&lt;/h2&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Writing tests is essential to ensure the reliability and maintainability of your Django applications - &lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;Unit Tests&lt;/b&gt;: Learn how to write unit tests for individual components of your application.&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;Integration Tests&lt;/b&gt;: Understand how to perform integration tests to ensure different parts of your application work together correctly.&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;Test Client&lt;/b&gt;: Use Django&#39;s test client to simulate user interactions and test your views and forms.&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;Security&quot; style=&quot;text-align: left;&quot;&gt;7. Security&lt;/h2&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Security is a critical aspect of web development. In this stage, learn about -&lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;Cross-Site Scripting (XSS) and Cross-Site Request Forgery (CSRF)&lt;/b&gt;: Understand these common web vulnerabilities and learn how to protect your Django application against them.&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;Authentication and Authorization&lt;/b&gt;: Dive deeper into authentication methods, including token-based authentication, and ensure your authorization mechanisms are robust.&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;Secure Configuration&lt;/b&gt;: Learn about securing sensitive information in settings, handling media files securely, and using HTTPS.&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;Deployment&quot; style=&quot;text-align: left;&quot;&gt;8. Deployment&lt;/h2&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Finally, learn how to deploy your Django application to a production environment -&lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;Hosting&lt;/b&gt;: Choose a hosting provider and learn how to deploy your Django app on platforms like Heroku, AWS, or Digital Ocean.&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;Database Setup&lt;/b&gt;: Configure your production database and backups.&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;Server Configuration&lt;/b&gt;: Optimize your web server settings for performance and security.&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;Continuous_Integration&quot; style=&quot;text-align: left;&quot;&gt;9. Continuous Integration and Deployment (CI/CD)&lt;/h2&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Explore CI/CD pipelines to automate the testing and deployment process -&lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;Continuous Integration (CI)&lt;/b&gt;: Set up CI to automatically run tests whenever code changes are pushed.&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;Continuous Deployment (CD)&lt;/b&gt;: Automate the deployment process after successful CI tests.&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;Keep_Learning&quot; style=&quot;text-align: left;&quot;&gt;10. Keep Learning and Exploring&lt;/h2&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;The Django ecosystem is vast and continuously evolving. Stay up-to-date with the latest releases, libraries, and best practices by reading the official Django documentation, participating in developer communities, and working on personal projects.&lt;/p&gt;&lt;h2 id=&quot;Conclusion&quot; style=&quot;text-align: left;&quot;&gt;Conclusion&lt;br /&gt;&lt;/h2&gt;&lt;p&gt;Remember, becoming a proficient Django developer is a journey that requires consistent practice, patience, and a passion for learning. Take small steps, build projects, and apply what you learn to gain real-world experience. With dedication and a well-structured roadmap, you&#39;ll be well on your way to becoming a skilled Django developer. Good luck on your journey!&lt;/p&gt;

&lt;div&gt;&lt;div style=&quot;font-size: 12px; margin: 0px; text-align: center;&quot;&gt;Advertisements&lt;/div&gt;&lt;p&gt;&lt;!--Showing Google Ads--&gt;&lt;script async=&quot;&quot; crossorigin=&quot;anonymous&quot; src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1380317796882611&quot;&gt;&lt;/script&gt;&lt;!--in_post_ads1--&gt;&lt;ins class=&quot;adsbygoogle&quot; data-ad-client=&quot;ca-pub-1380317796882611&quot; data-ad-format=&quot;auto&quot; data-ad-slot=&quot;6417412882&quot; data-full-width-responsive=&quot;true&quot; style=&quot;display: block;&quot;&gt;&lt;/ins&gt;&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;&lt;/p&gt;&lt;span&gt;&lt;h4 style=&quot;font-family: Merriweather, Georgia, serif; font-size: 16px;&quot;&gt;&lt;div style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium;&quot;&gt;Useful Resources:&lt;/div&gt;&lt;/h4&gt;&lt;/span&gt;&lt;h4&gt;&lt;span&gt;&lt;ul style=&quot;font-weight: 400;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/p/how-to.html&quot; style=&quot;font-family: inherit;&quot;&gt;How To&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/Data%20Science&quot;&gt;Data Science&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/PyTorch&quot;&gt;PyTorch&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/Python%20Programming&quot; style=&quot;font-family: inherit;&quot;&gt;Python Programming&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/p/computer-vision.html&quot;&gt;Computer Vision&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;/h4&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://www.binarystudy.com/feeds/3640877935995301496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.binarystudy.com/2023/09/a-comprehensive-python-django-developer-roadmap.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/3640877935995301496'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/3640877935995301496'/><link rel='alternate' type='text/html' href='https://www.binarystudy.com/2023/09/a-comprehensive-python-django-developer-roadmap.html' title='A Comprehensive Python Django Developer Roadmap'/><author><name>BinaryStudy</name><uri>http://www.blogger.com/profile/15724128477203620724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-872352852572370142.post-8536760686203365911</id><published>2024-05-04T19:46:00.000-07:00</published><updated>2024-05-26T00:07:47.812-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="Python Programming"/><title type='text'>Write a code in python to input 4 digit number and reverse its first and last digit</title><content type='html'>&lt;h2 style=&quot;text-align: left;&quot;&gt;Introduction&lt;/h2&gt;&lt;p&gt;Python is a popular high-level programming language that is widely used for various applications, including web development, data analysis, and automation. In this article, we will discuss how to write a Python program to input a 4-digit number and reverse its first and last digit.&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;p&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Requirements&lt;/h2&gt;&lt;p&gt;To write a Python program to reverse the first and last digit of a 4-digit number, we will need the following: &lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Python installed on your system&lt;/li&gt;&lt;li&gt;A code editor or IDE to write and execute the code&lt;/li&gt;&lt;li&gt;Basic knowledge of Python programming&lt;/li&gt;&lt;/ul&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Writing the code&lt;/h2&gt;&lt;p&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Step 1: Input the 4-digit number&lt;/h3&gt;&lt;p&gt;To input the 4-digit number, we will use the input() function, which allows the user to enter a value from the keyboard. Here is the code to input the 4-digit number:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;num = int(input(&quot;Enter a 4-digit number: &quot;))&lt;/pre&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Step 2: Extract the first and last digit&lt;/h3&gt;&lt;p&gt;To extract the first and last digit of the 4-digit number, we can use the modulus operator (%) and integer division (//) operator. The modulus operator returns the remainder when one number is divided by another, while the integer division operator returns the quotient without the remainder. Here is the code to extract the first and last digit:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;first_digit = num // 1000&lt;br /&gt;last_digit = num % 10&lt;/pre&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Step 3: Reverse the first and last digit&lt;/h3&gt;&lt;p&gt;To reverse the first and last digit of the 4-digit number, we can use string concatenation to join the last digit, the middle two digits, and the first digit. Here is the code to reverse the first and last digit:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;reversed_num = str(last_digit) + str(num % 1000 // 100) + str(num % 100 // 10) + str(first_digit)&lt;/pre&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Step 4: Print the reversed number&lt;/h3&gt;&lt;p&gt;To print the reversed number, we can use the print() function. Here is the code to print the reversed number:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;print(&quot;The reversed number is:&quot;, reversed_num)&lt;/pre&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Complete Python Code&lt;br /&gt;&lt;/h2&gt;&lt;p&gt;Here is the complete Python code to input a 4-digit number and reverse its first and last digit:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;num = int(input(&quot;Enter a 4-digit number: &quot;))&lt;br /&gt;first_digit = num // 1000&lt;br /&gt;last_digit = num % 10&lt;br /&gt;reversed_num = str(last_digit) + str(num % 1000 // 100) + str(num % 100 // 10) + str(first_digit)&lt;br /&gt;print(&quot;The reversed number is:&quot;, reversed_num)&lt;/pre&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Output&lt;/h4&gt;&lt;p&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #212121; display: inline; float: none; font-family: monospace; font-size: 14px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: pre; widows: 2; word-spacing: 0px;&quot;&gt;Enter a 4-digit number: 2347
The reversed number is: 7342&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Conclusion&lt;/h2&gt;&lt;p&gt;In this article, we discussed how to write a Python program to input a 4-digit number and reverse its first and last digit. We used basic Python programming concepts such as input() function, modulus operator (%), integer division (//) operator, string concatenation, and print() function to accomplish the task. By following this article, you should now be able to write Python programs to reverse the first and last digit of a 4-digit number.&lt;/p&gt;&lt;div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;div style=&quot;font-size: 12px; margin: 0px; text-align: center;&quot;&gt;Advertisements&lt;/div&gt;&lt;p&gt;&lt;!--Showing Google Ads--&gt;&lt;script async=&quot;&quot; crossorigin=&quot;anonymous&quot; src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1380317796882611&quot;&gt;&lt;/script&gt;&lt;!--in_post_ads1--&gt;&lt;ins class=&quot;adsbygoogle&quot; data-ad-client=&quot;ca-pub-1380317796882611&quot; data-ad-format=&quot;auto&quot; data-ad-slot=&quot;6417412882&quot; data-full-width-responsive=&quot;true&quot; style=&quot;display: block;&quot;&gt;&lt;/ins&gt;&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;&lt;/p&gt;&lt;div&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;h4 style=&quot;font-family: Merriweather, Georgia, serif; font-size: 16px;&quot;&gt;&lt;div style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium;&quot;&gt;Useful Resources:&lt;/div&gt;&lt;/h4&gt;&lt;/span&gt;&lt;h4&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;ul style=&quot;font-weight: 400;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/p/how-to.html&quot; style=&quot;font-family: inherit;&quot;&gt;How To&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/Data%20Science&quot;&gt;Data Science&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/PyTorch&quot;&gt;PyTorch&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/Python%20Programming&quot; style=&quot;font-family: inherit;&quot;&gt;Python Programming&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/p/computer-vision.html&quot;&gt;Computer Vision&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;/h4&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.binarystudy.com/feeds/8536760686203365911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.binarystudy.com/2023/05/python-code-to-input-4-digit-number-and-reverse-first-and-last-digit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/8536760686203365911'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/8536760686203365911'/><link rel='alternate' type='text/html' href='https://www.binarystudy.com/2023/05/python-code-to-input-4-digit-number-and-reverse-first-and-last-digit.html' title='Write a code in python to input 4 digit number and reverse its first and last digit'/><author><name>Shahid Akhtar</name><uri>http://www.blogger.com/profile/11701257762418085870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-872352852572370142.post-80674476609260772</id><published>2024-04-30T20:06:00.000-07:00</published><updated>2024-05-26T00:08:42.385-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="Python Programming"/><category scheme="http://www.blogger.com/atom/ns#" term="Python Tuple"/><title type='text'>Define tuple in python - how indexing and splitting done in tuple?</title><content type='html'>&lt;h2 style=&quot;text-align: left;&quot;&gt;Introduction&lt;/h2&gt;&lt;p&gt;Python is a popular high-level programming language that supports various data types, including lists, dictionaries, and tuples. In this article, we will discuss tuples in Python, how they are defined, and how indexing and splitting is done in tuples.&lt;br /&gt;&lt;/p&gt;&lt;span&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/span&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Defining a Tuple&lt;/h2&gt;&lt;p&gt;A tuple is a collection of values that are ordered and immutable. Tuples are defined using parentheses (), and the values are separated by commas. Here is an example of a tuple that contains three values:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;my_tuple = (1, &quot;Hello&quot;, 3.14)&lt;/pre&gt;&lt;p&gt;Tuples are similar to lists, but they are immutable, which means that once a tuple is defined, its values cannot be changed. Tuples are often used to store related values that are not meant to be modified.&lt;br /&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Indexing in Tuple&lt;/h2&gt;&lt;p&gt;Indexing is a way to access individual values in a tuple. In Python, indexing starts from 0, which means that the first value in a tuple has an index of 0, the second value has an index of 1, and so on. To access a value in a tuple, we can use square brackets [] and provide the index of the value that we want to access. Here is an example of indexing a tuple:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;my_tuple = (1, &quot;Hello&quot;, 3.14)&lt;br /&gt;print(my_tuple[0])&amp;nbsp;&amp;nbsp; # Output: 1&lt;br /&gt;print(my_tuple[1])&amp;nbsp;&amp;nbsp; # Output: Hello&lt;br /&gt;print(my_tuple[2])&amp;nbsp;&amp;nbsp; # Output: 3.14&lt;/pre&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Splitting a Tuple&lt;/h2&gt;&lt;p&gt;Tuples can also be split into multiple values using the unpacking operator (*). To split a tuple, we can assign the values to multiple variables, and the unpacking operator will assign the remaining values to the last variable. Here is an example of splitting a tuple:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;my_tuple = (1, &quot;Hello&quot;, 3.14)&lt;br /&gt;a, b, c = my_tuple&lt;br /&gt;print(a)&amp;nbsp;&amp;nbsp;&amp;nbsp; # Output: 1&lt;br /&gt;print(b)&amp;nbsp;&amp;nbsp;&amp;nbsp; # Output: Hello&lt;br /&gt;print(c)&amp;nbsp;&amp;nbsp;&amp;nbsp; # Output: 3.14&lt;/pre&gt;&lt;p&gt;In this example, we assign the values of the tuple to the variables a, b, and c. The unpacking operator (*) is used to assign the remaining values to the last variable, which is c in this case.&lt;br /&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Conclusion&lt;/h2&gt;&lt;p&gt;In this article, we discussed tuples in Python, how they are defined, and how indexing and splitting is done in tuples. Tuples are immutable collections of ordered values that are defined using parentheses (). Indexing is used to access individual values in a tuple using square brackets [], and the first value has an index of 0. Tuples can also be split into multiple values using the unpacking operator (*), which assigns the remaining values to the last variable. By following this article, you should now have a good understanding of tuples in Python and how they can be used in your code.&lt;/p&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;div style=&quot;font-size: 12px; margin: 0px; text-align: center;&quot;&gt;Advertisements&lt;/div&gt;&lt;p&gt;&lt;!--Showing Google Ads--&gt;&lt;script async=&quot;&quot; crossorigin=&quot;anonymous&quot; src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1380317796882611&quot;&gt;&lt;/script&gt;&lt;!--in_post_ads1--&gt;&lt;ins class=&quot;adsbygoogle&quot; data-ad-client=&quot;ca-pub-1380317796882611&quot; data-ad-format=&quot;auto&quot; data-ad-slot=&quot;6417412882&quot; data-full-width-responsive=&quot;true&quot; style=&quot;display: block;&quot;&gt;&lt;/ins&gt;&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;&lt;/p&gt;&lt;div&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;h4 style=&quot;font-family: Merriweather, Georgia, serif; font-size: 16px;&quot;&gt;&lt;div style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium;&quot;&gt;Useful Resources:&lt;/div&gt;&lt;/h4&gt;&lt;/span&gt;&lt;h4&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;ul style=&quot;font-weight: 400;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/p/how-to.html&quot; style=&quot;font-family: inherit;&quot;&gt;How To&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/Data%20Science&quot;&gt;Data Science&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/PyTorch&quot;&gt;PyTorch&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/Python%20Programming&quot; style=&quot;font-family: inherit;&quot;&gt;Python Programming&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/p/computer-vision.html&quot;&gt;Computer Vision&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;/div&gt;&lt;/h4&gt;&lt;/div&gt;&lt;/div&gt;&lt;span&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;&lt;b&gt;Next Post&lt;/b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt; &lt;/b&gt;&lt;a href=&quot;https://www.binarystudy.com/2023/05/hardware-software-requirement-of-voice-assistant-AI-Python.html&quot;&gt;Hardware and software requirement of voice assistant AI and Python&lt;/a&gt;&lt;br style=&quot;font-weight: 700;&quot; /&gt;&lt;span style=&quot;font-weight: 700;&quot;&gt;&lt;span style=&quot;color: #38761d;&quot;&gt;Previous Post: &lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.binarystudy.com/2023/05/python-code-to-input-4-digit-number-and-reverse-first-and-last-digit.html&quot;&gt;Write a code in Python to input 4 digit number and reverse its first and last digit&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.binarystudy.com/feeds/80674476609260772/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.binarystudy.com/2023/05/define-tuple-in-python-indexing-and-splitting-in-tuple.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/80674476609260772'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/80674476609260772'/><link rel='alternate' type='text/html' href='https://www.binarystudy.com/2023/05/define-tuple-in-python-indexing-and-splitting-in-tuple.html' title='Define tuple in python - how indexing and splitting done in tuple?'/><author><name>Shahid Akhtar</name><uri>http://www.blogger.com/profile/11701257762418085870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-872352852572370142.post-1868524859796883849</id><published>2024-04-28T01:48:00.000-07:00</published><updated>2024-05-26T00:10:09.672-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Algorithm"/><category scheme="http://www.blogger.com/atom/ns#" term="Machine Learning"/><title type='text'>Difference Between Algorithm and Machine Learning</title><content type='html'>Generally the students misunderstood the terms Algorithm and Machine Learning. Basically in ML algorithms are building blocks. So what are the basic differences between algorithm and ML. Lets understand the difference.&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;p&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;times&amp;quot;, &amp;quot;times new roman&amp;quot;, serif;&quot;&gt;What is Algorithm?&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;An algorithm is a series of unambiguous instructions designed in order to solve a problem and achieve a certain goal in a finite number of steps. According to Knuth (1968) an algorithm must possess the following properties”:&lt;div&gt;&lt;br /&gt;&lt;b&gt;Finiteness&lt;/b&gt;: &quot;An algorithm must always terminate after a finite number of steps a very finite number, a reasonable number&quot;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;Definiteness&lt;/b&gt;: &quot;Each step of an algorithm must be precisely defined; the actions to be carried out must be rigorously and unambiguously specified for each case&quot;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;Input&lt;/b&gt;: &quot;...quantities which are given to it initially before the algorithm begins. These inputs are taken from specified sets of objects&quot;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;Output&lt;/b&gt;: &quot;...quantities which have a specified relation to the inputs&quot;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;Effectiveness&lt;/b&gt;: &quot;... all of the operations to be performed in the algorithm must be sufficiently basic that they can in principle be done exactly and in a finite length of time by a man using paper and pencil&quot;.&lt;br /&gt;&lt;br /&gt;So Any algorithms takes input and gives output in a finite steps.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;input ➡️☐➡️output&lt;h2 style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;times&amp;quot;, &amp;quot;times new roman&amp;quot;, serif;&quot;&gt;What is Machine Learning?&lt;/span&gt;&lt;/h2&gt;In machine learning, the algorithms are building blocks. A set of data is provided to algorithm as input and output is a model which is an executable in some sense. This model is used  as deployment entity which takes input and produces output prediction.&lt;br /&gt;&lt;br /&gt;The data set is provided to train the model. Training the model means we provide the data set and also the expected output. Its same like when a child start to learn some thing. Suppose you want to teach a child the difference between apple mango. So some sample of apple and mango will be shown to the child. And finally child will be able to differentiate between apple and mango. In this way data set are given to the model and finally model will be able to predict for new data set.&lt;div&gt;&lt;span style=&quot;font-family: &amp;quot;times&amp;quot;, &amp;quot;times new roman&amp;quot;, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;input(data set) ➡️ ⬜➡️output(model) &lt;br /&gt;&lt;br /&gt;data ➡️ model ➡️ predicted output&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;font-size: 12px; margin: 0px; text-align: center;&quot;&gt;Advertisements&lt;/div&gt;&lt;p&gt;&lt;!--Showing Google Ads--&gt;&lt;script async=&quot;&quot; crossorigin=&quot;anonymous&quot; src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1380317796882611&quot;&gt;&lt;/script&gt;&lt;!--in_post_ads1--&gt;&lt;ins class=&quot;adsbygoogle&quot; data-ad-client=&quot;ca-pub-1380317796882611&quot; data-ad-format=&quot;auto&quot; data-ad-slot=&quot;6417412882&quot; data-full-width-responsive=&quot;true&quot; style=&quot;display: block;&quot;&gt;&lt;/ins&gt;&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;&lt;/p&gt;&lt;div&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;h4 style=&quot;font-family: Merriweather, Georgia, serif; font-size: 16px;&quot;&gt;&lt;div style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium;&quot;&gt;Useful Resources:&lt;/div&gt;&lt;/h4&gt;&lt;/span&gt;&lt;h4&gt;&lt;span&gt;&lt;ul style=&quot;font-weight: 400;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/p/how-to.html&quot; style=&quot;font-family: inherit;&quot;&gt;How To&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/Machine%20Learning&quot;&gt;Machine Learning&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/PyTorch&quot;&gt;PyTorch&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/Python%20Programming&quot; style=&quot;font-family: inherit;&quot;&gt;Python Programming&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/p/computer-vision.html&quot;&gt;Computer Vision&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;/h4&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.binarystudy.com/feeds/1868524859796883849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.binarystudy.com/2022/11/difference-between-algorithm-and-machine-learning.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/1868524859796883849'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/1868524859796883849'/><link rel='alternate' type='text/html' href='https://www.binarystudy.com/2022/11/difference-between-algorithm-and-machine-learning.html' title='Difference Between Algorithm and Machine Learning'/><author><name>BinaryStudy</name><uri>http://www.blogger.com/profile/15724128477203620724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-872352852572370142.post-9157830125079617184</id><published>2024-04-21T02:27:00.000-07:00</published><updated>2024-05-26T00:11:23.436-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Data Science"/><category scheme="http://www.blogger.com/atom/ns#" term="pip"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><title type='text'>How to reinstall python packages using pip | ignore-installed and force-reinstall</title><content type='html'>&lt;p&gt;To reinstall a Python package using pip, you can use the &lt;span style=&quot;font-family: Consolas;&quot;&gt;pip install&lt;/span&gt; command followed by the package name.&amp;nbsp;&lt;/p&gt;&lt;p&gt;For example, to reinstall the latest&amp;nbsp; &lt;span style=&quot;font-family: Consolas;&quot;&gt;numpy &lt;/span&gt;package, you can use the following command:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;pip install numpy&lt;/pre&gt;This will download and install the latest version of the &lt;span style=&quot;font-family: Consolas;&quot;&gt;numpy &lt;/span&gt;package from the Python Package Index (PyPI).&lt;span&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/span&gt;If you want to reinstall a specific version of a package, you can use the pip install command followed by the package name and the version number. &lt;br /&gt;&lt;br /&gt;For example, to reinstall version 1.23.5 of the &lt;span style=&quot;font-family: Consolas;&quot;&gt;numpy &lt;/span&gt;package, you can use the following command:&lt;br /&gt;&lt;pre&gt;pip install numpy==1.23.5&lt;/pre&gt;By default, pip will install the package and any necessary dependencies. If you want to install the package without its dependencies, you can use the --no-deps flag. &lt;br /&gt;&lt;br /&gt;For example, to reinstall the &lt;span style=&quot;font-family: Consolas;&quot;&gt;numpy &lt;/span&gt;package without its dependencies, you can use the following&lt;br /&gt;command:&lt;br /&gt;&lt;pre&gt;pip install --no-deps numpy&lt;/pre&gt;&quot;&lt;i&gt;Note that reinstalling a package using pip will overwrite any existing installation of the package. This may cause problems if the package has been modified or customized in any way. It is recommended to backup any customizations or modifications before reinstalling a package using pip.&lt;/i&gt;&quot;&lt;h3 style=&quot;text-align: left;&quot;&gt;Using --ignore-installed flag&lt;/h3&gt;To reinstall a Python package using pip and&lt;i&gt; ignore any existing installations&lt;/i&gt; of the package, you can use the pip install command followed by the &lt;span style=&quot;font-family: Consolas;&quot;&gt;--ignore-installed&lt;/span&gt; flag and the package name. For example, to reinstall the numpy package and ignore any existing installations, you can use the following command: &lt;br /&gt;&lt;pre&gt;pip install --ignore-installed numpy&lt;/pre&gt;This will download and install the latest version of the numpy package from the Python Package Index (PyPI), regardless of whether the package is already installed on your system.&lt;br /&gt;&lt;br /&gt;To reinstall a specific version of a package (for example numpy 1.23.5) using the &lt;span style=&quot;font-family: Consolas;&quot;&gt;--ignore-installed &lt;/span&gt;flag, you can use the following command:&lt;pre&gt;pip install --ignore-installed numpy==1.23.5&lt;/pre&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Using --force-reinstall flag&lt;/h3&gt;Alternatively, if you want to force pip to &lt;i&gt;reinstall a package even if it is already installed&lt;/i&gt;, you can use the pip install command followed by the &lt;span style=&quot;font-family: Consolas;&quot;&gt;--force-reinstall&lt;/span&gt; flag and the package name. For example, to force pip to reinstall the numpy package, you can use the following command:&lt;br /&gt;&lt;pre&gt;pip install --force-reinstall numpy&lt;/pre&gt;To reinstall a specific version of a package ( for example numpy 1.23.5) using the --force-reinstall flag, you can use the following command:&lt;br /&gt;&lt;pre&gt;pip install ---force-reinstall numpy==1.23.5&lt;/pre&gt;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&quot;&lt;i&gt;Note that using the --ignore-installed or --force-reinstall flags may cause problems if the existing installation of the package has been modified or customized in any way. It is recommended to backup any customizations or modifications before using these flags to reinstall a package using pip.&lt;/i&gt;&quot;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div style=&quot;font-size: 12px; margin: 0px; text-align: center;&quot;&gt;Advertisements&lt;/div&gt;&lt;p&gt;&lt;!--Showing Google Ads--&gt;&lt;script async=&quot;&quot; crossorigin=&quot;anonymous&quot; src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1380317796882611&quot;&gt;&lt;/script&gt;&lt;!--in_post_ads1--&gt;&lt;ins class=&quot;adsbygoogle&quot; data-ad-client=&quot;ca-pub-1380317796882611&quot; data-ad-format=&quot;auto&quot; data-ad-slot=&quot;6417412882&quot; data-full-width-responsive=&quot;true&quot; style=&quot;display: block;&quot;&gt;&lt;/ins&gt;&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;&lt;/p&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;h4 style=&quot;font-family: Merriweather, Georgia, serif; font-size: 16px;&quot;&gt;&lt;div style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium;&quot;&gt;Useful Resources:&lt;/div&gt;&lt;/h4&gt;&lt;/span&gt;&lt;h4&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;ul style=&quot;font-weight: 400;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/p/how-to.html&quot; style=&quot;font-family: inherit;&quot;&gt;How To&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/Data%20Science&quot;&gt;Data Science&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/PyTorch&quot;&gt;PyTorch&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/Python%20Programming&quot; style=&quot;font-family: inherit;&quot;&gt;Python Programming&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/p/computer-vision.html&quot;&gt;Computer Vision&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;/h4&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.binarystudy.com/feeds/9157830125079617184/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.binarystudy.com/2022/12/how-to-reinstall-python-packages-using-pip.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/9157830125079617184'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/9157830125079617184'/><link rel='alternate' type='text/html' href='https://www.binarystudy.com/2022/12/how-to-reinstall-python-packages-using-pip.html' title='How to reinstall python packages using pip | ignore-installed and force-reinstall'/><author><name>BinaryStudy</name><uri>http://www.blogger.com/profile/15724128477203620724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-872352852572370142.post-3620725474513223045</id><published>2023-12-12T06:33:00.000-08:00</published><updated>2024-03-17T05:00:25.859-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Data Science"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><title type='text'>How to Clear Python Shell?</title><content type='html'>&lt;h3 style=&quot;text-align: left;&quot;&gt;What is Python Shell?&lt;/h3&gt;&lt;p&gt;Python shell allows us to interact Python interpreter. It is used to execute single-line Python commands and display the output. While we can write Python code directly in the shell each line of code is treated as a single Python command and each line is executed one by one.&amp;nbsp;&lt;/p&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;When we install Python, it provide us with the shell to interact with Python interpreter.&amp;nbsp; &lt;br /&gt;&lt;/p&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYYeD6Mmzyk0AF0qoPFf-Cz0CEnZmDeR7KFkblvs1oc2pbw0d5inYNoMX1e-ErCHfwMPN2u0LuXE3GKb6SLtLFfAlr_XNG1K6IlNrPOSrje9Lp6mx0BnH5GYsI-uKe1Eiuo_1M1gqtnbYos1xTTaI8UkFJwJuigMFQUCUxdWv5gwMXGOvDQo34wR1tW0Da/s1093/Python_Shell_Demo_image.jpg&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;Python Shell&quot; border=&quot;0&quot; data-original-height=&quot;540&quot; data-original-width=&quot;1093&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYYeD6Mmzyk0AF0qoPFf-Cz0CEnZmDeR7KFkblvs1oc2pbw0d5inYNoMX1e-ErCHfwMPN2u0LuXE3GKb6SLtLFfAlr_XNG1K6IlNrPOSrje9Lp6mx0BnH5GYsI-uKe1Eiuo_1M1gqtnbYos1xTTaI8UkFJwJuigMFQUCUxdWv5gwMXGOvDQo34wR1tW0Da/s16000/Python_Shell_Demo_image.jpg&quot; title=&quot;Python Shell&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Image: Python Shell&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;We can also use the &quot;&lt;b&gt;cmd&lt;/b&gt;&quot; or Windows PowerShell as the Python shell. This shell is sometimes referred to as the &lt;b&gt;terminal &lt;/b&gt;in different IDEs. Occasionally, there is a need to clear the screen of the shell. Here we will understand different methods to accomplish this task.&lt;br /&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;How to Clear Python Shell or terminal?&lt;/h2&gt;&lt;p&gt;We can clear the screen of the Python shell or terminal using the &lt;b&gt;&#39;os&#39; &lt;/b&gt;module in Python. Let&#39;s look at the commands to clear the shell in different operating systems -&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;In Windows&lt;/h3&gt;&lt;p&gt;&lt;/p&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsG-9az2jiekH1TA4qxCp8ltkVWcjZw1YX8h1r1rTCu3H8J8aZXYsDK2gm_aNksI5EfWcLef-2fjKaLR2F_X3Ac7YCnOdLyhUA8GFzDlbUNL082EdjBBHRcCIHI5zJ8QcqJKBuIHFi4EmvTX6t67iG11IyBB2zhtKQMRrWkwJfPU07dubrPtL4XzfTEuhc/s1346/how_to_clear_python_shell_terminal.gif&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;Clearing Python Shell in Windows&quot; border=&quot;0&quot; data-original-height=&quot;462&quot; data-original-width=&quot;1346&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsG-9az2jiekH1TA4qxCp8ltkVWcjZw1YX8h1r1rTCu3H8J8aZXYsDK2gm_aNksI5EfWcLef-2fjKaLR2F_X3Ac7YCnOdLyhUA8GFzDlbUNL082EdjBBHRcCIHI5zJ8QcqJKBuIHFi4EmvTX6t67iG11IyBB2zhtKQMRrWkwJfPU07dubrPtL4XzfTEuhc/s16000/how_to_clear_python_shell_terminal.gif&quot; title=&quot;GIF - Clearing Python Shell in Windows 11&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;GIF: Clearing Python Shell in Windows 11&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;First, import the &#39;&lt;b&gt;os&lt;/b&gt;&#39; module using the command &quot;&lt;span style=&quot;font-family: Consolas;&quot;&gt;import os&lt;/span&gt;&quot;. Then, use &lt;span style=&quot;font-family: Consolas;&quot;&gt;&quot;os.system(&#39;cls&#39;)&quot; &lt;/span&gt;command to clear the screen of the shell/ terminal. Alternatively, you can also use &quot;&lt;span style=&quot;font-family: Consolas;&quot;&gt;os.system(&#39;CLS&#39;)&lt;/span&gt;&quot;.&amp;nbsp;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;import os&lt;br /&gt;os.system(&#39;cls&#39;)&lt;/pre&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;In Linux/ MacOS&lt;br /&gt;&lt;/h3&gt;&lt;p&gt;Similarly, import the &#39;&lt;b&gt;os&lt;/b&gt;&#39; module using the command &quot;&lt;span style=&quot;font-family: Consolas;&quot;&gt;import os&lt;/span&gt;&quot;. Then, use the &lt;span style=&quot;font-family: Consolas;&quot;&gt;&quot;os.system(&#39;clear&#39;)&quot; &lt;/span&gt;command to clear the screen of the shell/ terminal.&lt;/p&gt;&lt;pre&gt;import os&lt;br /&gt;os.system(&#39;clear&#39;)&lt;/pre&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;For Any Operating System&lt;/h3&gt;The Following code snippet can be used to clear the screen of the python shell or terminal -&lt;br /&gt;&lt;pre&gt;import os&lt;br /&gt;def clear_screen():&lt;br /&gt; os.system(&#39;cls&#39; if os.name == &#39;nt&#39; else &#39;clear&#39;)&lt;br /&gt;&lt;br /&gt;# Call the function to clear the screen&lt;br /&gt;clear_screen()&lt;/pre&gt;&lt;p&gt;The &quot;&lt;span style=&quot;font-family: Consolas;&quot;&gt;os.name&lt;/span&gt;&quot; attribute identifies the name of the operating system dependent module imported. If it&#39;s &#39;&lt;span style=&quot;font-family: Consolas;&quot;&gt;nt&lt;/span&gt;&#39;, it&#39;s a Windows system; otherwise, it&#39;s assumed to be a Unix-like system.&lt;br /&gt;The &quot;&lt;span style=&quot;font-family: Consolas;&quot;&gt;os.system&lt;/span&gt;&quot; function is then used to execute the appropriate clear command.&lt;/p&gt;&lt;div&gt;&lt;div style=&quot;font-size: 12px; margin: 0px; text-align: center;&quot;&gt;Advertisements&lt;/div&gt;&lt;p&gt;&lt;!--Showing Google Ads--&gt;&lt;script async=&quot;&quot; crossorigin=&quot;anonymous&quot; src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1380317796882611&quot;&gt;&lt;/script&gt;&lt;!--in_post_ads1--&gt;&lt;ins class=&quot;adsbygoogle&quot; data-ad-client=&quot;ca-pub-1380317796882611&quot; data-ad-format=&quot;auto&quot; data-ad-slot=&quot;6417412882&quot; data-full-width-responsive=&quot;true&quot; style=&quot;display: block;&quot;&gt;&lt;/ins&gt;&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;&lt;/p&gt;&lt;span&gt;&lt;h4 style=&quot;font-family: Merriweather, Georgia, serif; font-size: 16px;&quot;&gt;&lt;div style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium;&quot;&gt;Useful Resources:&lt;/div&gt;&lt;/h4&gt;&lt;/span&gt;&lt;h4&gt;&lt;span&gt;&lt;ul style=&quot;font-weight: 400;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/p/how-to.html&quot; style=&quot;font-family: inherit;&quot;&gt;How To&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/Data%20Science&quot;&gt;Data Science&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/PyTorch&quot;&gt;PyTorch&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/Python%20Programming&quot; style=&quot;font-family: inherit;&quot;&gt;Python Programming&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/p/computer-vision.html&quot;&gt;Computer Vision&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;/h4&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.binarystudy.com/feeds/3620725474513223045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.binarystudy.com/2023/12/how-to-clear-python-shell.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/3620725474513223045'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/3620725474513223045'/><link rel='alternate' type='text/html' href='https://www.binarystudy.com/2023/12/how-to-clear-python-shell.html' title='How to Clear Python Shell?'/><author><name>BinaryStudy</name><uri>http://www.blogger.com/profile/15724128477203620724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYYeD6Mmzyk0AF0qoPFf-Cz0CEnZmDeR7KFkblvs1oc2pbw0d5inYNoMX1e-ErCHfwMPN2u0LuXE3GKb6SLtLFfAlr_XNG1K6IlNrPOSrje9Lp6mx0BnH5GYsI-uKe1Eiuo_1M1gqtnbYos1xTTaI8UkFJwJuigMFQUCUxdWv5gwMXGOvDQo34wR1tW0Da/s72-c/Python_Shell_Demo_image.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-872352852572370142.post-5002327908258865044</id><published>2023-12-03T06:09:00.000-08:00</published><updated>2023-12-13T10:43:01.129-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Artificial Intelligence"/><category scheme="http://www.blogger.com/atom/ns#" term="Deepfake"/><category scheme="http://www.blogger.com/atom/ns#" term="Technology News"/><title type='text'>What is DeepFake? Potential Misuse of DeepFake Technology</title><content type='html'>&lt;h2 style=&quot;text-align: left;&quot;&gt;What is Deepfake?&amp;nbsp;&lt;/h2&gt;&lt;p style=&quot;text-align: left;&quot;&gt;We all aware of Artificial Intelligence, especially since the advent of the &lt;b&gt;ChatGPT &lt;/b&gt;by &lt;b&gt;OpenAI&lt;/b&gt;. Now Artificial Intelligence (AI) has become so powerful that some well known AI researchers fear that, in near future, AI will be more powerful than human intelligence. In such cases the existence of human will be in danger. Despite this concern,we hope that the AI will always be used for the well-being of humanity.&lt;/p&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;There are numerous applications of the Artificial Intelligence, and one of them is &lt;b&gt;Deepfake &lt;/b&gt;technology. It is a deep learning technology that utilizes deep neural networks, particularly generative adversarial networks (GANs). This technology is capable of generating realistic-looking images, videos, or audio recordings, often manipulating existing content (videos, audio) to create deepfakes that appear realistic.&amp;nbsp; &lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;This technology has both positive and negative applications. Today in this post we will discuss the negative applications or potential misuses.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;In general, Deepfake refers to the use of artificial intelligence (AI) and deep learning techniques to create or manipulate audio and video content, making it appear as though it is real and authentic. The term &quot;deepfake&quot; is a combination of &quot;deep learning&quot; and &quot;fake.&quot;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Potential Misuse of Deepfake Technology&lt;/h2&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Deepfake has garnered attention from all section of society, from general public to the governments. There are many potential misuses of this technology, including the creation of child sexual abuse material, celebrity pornographic videos, porn for revenge, misinformation &amp;amp; fake news, hoaxes, bullying, and financial fraud.&amp;nbsp; Let&#39;s discuss some of these misuse. &lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;1. Pornographic Video&lt;/h3&gt;&lt;p style=&quot;text-align: left;&quot;&gt;This is a major concern for the general public. Deepfake can be used to create various types of pornographic videos, including child sexual abuse content, revenge porn, or for sale to porn websites.&amp;nbsp; Hope our researchers will be able to build some effective technologies to detect such fake videos soon.&amp;nbsp; &lt;br /&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;2. Misinformation and Fake News&lt;/h3&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Deepfakes can be used to create convincing fake news, spreading false information and potentially influencing public opinion. For example, a fake video of the Ukraine president instructing the army to surrender to the Russians.&lt;br /&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;3. Political Manipulation&lt;/h3&gt;&lt;p&gt;Deepfakes could be used to create misleading videos or speeches featuring political figures, leading to public confusion or manipulation during elections. You will witness in coming elections in your country.&lt;br /&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;4. Identity Theft&lt;/h3&gt;&lt;p&gt;Deepfake technology can be misused for identity theft, where someone&#39;s face or voice is superimposed onto inappropriate content, damaging their reputation. For instance, manipulating CCTV footage to create fake evidence of a crime.&lt;br /&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;5. Financial Fraud and Scams&lt;/h3&gt;&lt;p&gt;Criminals may use deepfakes to impersonate individuals in video or audio calls for fraudulent purposes, such as financial scams or social engineering attacks. Your friend&#39;s face or voice can misused for any fraud or scam.&lt;br /&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;6. Privacy Concerns&lt;/h3&gt;&lt;p&gt;Deepfake can pose a privacy concern. It can be used to create fake content featuring unsuspecting individuals, violating their privacy and causing significant harm.&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;7. Corporate Sabotage&lt;/h3&gt;&lt;p&gt;This technology can be used to create fake videos or audio recordings to harm the reputation of companies or individuals within the business world.&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;8. Security Risks&lt;/h3&gt;&lt;p&gt;Deepfakes could be used to create realistic fake credentials or impersonate individuals in security-sensitive situations, leading to potential breaches.&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;9. Undermining Trust&lt;/h3&gt;&lt;p&gt;The widespread use of deepfakes has the potential to erode trust in multimedia information, as people may become increasingly skeptical of the authenticity of media content.&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Conclusion&lt;/h2&gt;&lt;p&gt;Efforts are being made to develop deepfake detection tools and legislative measures to curb the negative impact of deepfake technology. However, the rapid evolution of these techniques poses an ongoing challenge in staying ahead of potential misuse. It&#39;s important for individuals and organizations to be aware of the existence of deepfake technology and take appropriate measures to verify the authenticity of digital content.&lt;br /&gt;&lt;/p&gt;&lt;div style=&quot;font-size: 12px; margin: 0px; text-align: center;&quot;&gt;Advertisements&lt;/div&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;!--Showing Google Ads--&gt;&lt;script async=&quot;&quot; crossorigin=&quot;anonymous&quot; src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1380317796882611&quot;&gt;&lt;/script&gt;&lt;!--in_post_ads1--&gt;&lt;ins class=&quot;adsbygoogle&quot; data-ad-client=&quot;ca-pub-1380317796882611&quot; data-ad-format=&quot;auto&quot; data-ad-slot=&quot;6417412882&quot; data-full-width-responsive=&quot;true&quot; style=&quot;display: block;&quot;&gt;&lt;/ins&gt;&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;&lt;/p&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;h4 style=&quot;font-family: Merriweather, Georgia, serif; font-size: 16px;&quot;&gt;&lt;div style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium;&quot;&gt;Useful Resources:&lt;/div&gt;&lt;/h4&gt;&lt;/span&gt;&lt;h4&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;ul style=&quot;font-weight: 400;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/p/how-to.html&quot; style=&quot;font-family: inherit;&quot;&gt;How To&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/Data%20Science&quot;&gt;Data Science&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/PyTorch&quot;&gt;PyTorch&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/Python%20Programming&quot; style=&quot;font-family: inherit;&quot;&gt;Python Programming&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/p/computer-vision.html&quot;&gt;Computer Vision&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;/h4&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.binarystudy.com/feeds/5002327908258865044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.binarystudy.com/2023/12/what-is-deepfake-potential-misuse-of-deepfake-technology.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/5002327908258865044'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/5002327908258865044'/><link rel='alternate' type='text/html' href='https://www.binarystudy.com/2023/12/what-is-deepfake-potential-misuse-of-deepfake-technology.html' title='What is DeepFake? Potential Misuse of DeepFake Technology'/><author><name>BinaryStudy</name><uri>http://www.blogger.com/profile/15724128477203620724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-872352852572370142.post-1586278106158197133</id><published>2023-08-22T20:23:00.005-07:00</published><updated>2025-01-06T02:05:39.451-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><title type='text'>Different Ways of Creating Python Virtual Environment</title><content type='html'>&lt;h2 style=&quot;text-align: left;&quot;&gt;Why to Create a Virtual Environment?&lt;/h2&gt;&lt;p&gt;A virtual environment is a self-contained workspace that allows you to manage packages and dependencies separately for different projects. It helps avoid conflicts between package versions and keeps your project environments isolated. In this article, we will explore different methods to create and activate virtual environments in Python.&amp;nbsp;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Different Ways to Create and Activate a Virtual Environment in Python&lt;/h2&gt;&lt;p&gt;There are multiple ways to create and activate a virtual environment in Python. Here are a few popular methods:&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;p&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Using venv (built-in module in Python 3)&lt;/h3&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Python&#39;s built-in venv module is a lightweight way to create virtual environments.&amp;nbsp;&lt;br /&gt;&lt;/p&gt;To &lt;b&gt;create &lt;/b&gt;a virtual environment, open your command prompt or terminal and navigate to the desired directory. Then, run the command:&lt;br /&gt;&lt;div&gt;&lt;pre&gt;python3 -m venv myenv&lt;/pre&gt;&lt;p&gt;This will create a new virtual environment named &quot;myenv&quot; in the current directory.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;To &lt;b&gt;activate &lt;/b&gt;the virtual environment, use the following command:&lt;br /&gt;&lt;/p&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;For Windows:&lt;/h4&gt;&lt;pre&gt;myenv\Scripts\activate&lt;/pre&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;For macOS/Linux:&lt;/h4&gt;&lt;pre&gt;source myenv/bin/activate&lt;/pre&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Using virtualenv (third-party package)&lt;/h3&gt;If you don&#39;t have the venv module installed or you are using an older version of Python, you can use virtualenv instead. The &lt;b&gt;virtualenv &lt;/b&gt;package provides more features and flexibility compared to &lt;b&gt;venv&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;First, &lt;b&gt;install virtualenv &lt;/b&gt;by running:&lt;br /&gt;&lt;pre&gt;pip install virtualenv&lt;/pre&gt;To &lt;b&gt;create &lt;/b&gt;a virtual environment, navigate to the desired directory in your command prompt or terminal and run:&lt;br /&gt;&lt;pre&gt;virtualenv myenv&lt;/pre&gt;&lt;br /&gt;To &lt;b&gt;activate &lt;/b&gt;the virtual environment:&lt;br /&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;For Windows:&lt;/h4&gt;&lt;pre&gt;myenv\Scripts\activate&lt;/pre&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;For macOS/Linux:&lt;/h4&gt;&lt;pre&gt;source myenv/bin/activate&lt;/pre&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Using Conda (if you have Anaconda or Miniconda installed)&lt;/h3&gt;Conda is a popular package and environment manager that simplifies the creation and management of virtual environments.&lt;br /&gt;&lt;br /&gt;To &lt;b&gt;create &lt;/b&gt;a new virtual environment, open your Anaconda prompt or terminal and run:&lt;br /&gt;&lt;pre&gt;conda create --name myenv&lt;/pre&gt;Replace myenv with the desired name for your environment.&lt;br /&gt;&lt;br /&gt;To &lt;b&gt;activate &lt;/b&gt;the virtual environment, use the following command:&lt;br /&gt;&lt;pre&gt;conda activate myenv&lt;/pre&gt;Replace myenv with the name of your virtual environment.&lt;br /&gt;&lt;br /&gt;These methods will create and activate a virtual environment in Python. Once the virtual environment is activated, you can install packages and run your Python code within that isolated environment.&lt;/div&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;How to Deactivate Virtual Environment?&lt;/h3&gt;&lt;div&gt;To deactivate the created and activate the virtual environment you need run the following command -&lt;/div&gt;&lt;pre&gt;deactivate&lt;/pre&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Conclusion&lt;/h3&gt;In this article, we explored different methods to create and activate virtual environments in Python. The choice of method depends on your requirements and familiarity. Using &lt;b&gt;venv &lt;/b&gt;is suitable for simple projects, while &lt;b&gt;virtualenv &lt;/b&gt;offers additional features. &lt;b&gt;Conda &lt;/b&gt;provides a powerful option for managing environments and packages.&lt;br /&gt;&lt;br /&gt;By using virtual environments, you can maintain clean and organized project setups, ensuring that your projects remain independent and free from package conflicts. This enhances the stability and reproducibility of your Python projects.&lt;div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;font-size: 12px; margin: 0px; text-align: center;&quot;&gt;Advertisements&lt;/div&gt;&lt;p&gt;&lt;!--Showing Google Ads--&gt;&lt;script async=&quot;&quot; crossorigin=&quot;anonymous&quot; src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1380317796882611&quot;&gt;&lt;/script&gt;&lt;!--in_post_ads1--&gt;&lt;ins class=&quot;adsbygoogle&quot; data-ad-client=&quot;ca-pub-1380317796882611&quot; data-ad-format=&quot;auto&quot; data-ad-slot=&quot;6417412882&quot; data-full-width-responsive=&quot;true&quot; style=&quot;display: block;&quot;&gt;&lt;/ins&gt;&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;&lt;/p&gt;&lt;span&gt;&lt;h4 style=&quot;font-family: Merriweather, Georgia, serif; font-size: 16px;&quot;&gt;&lt;div style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium;&quot;&gt;Useful Resources:&lt;/div&gt;&lt;/h4&gt;&lt;/span&gt;&lt;h4&gt;&lt;span&gt;&lt;ul style=&quot;font-weight: 400;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/p/how-to.html&quot; style=&quot;font-family: inherit;&quot;&gt;How To&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/Data%20Science&quot;&gt;Data Science&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/PyTorch&quot;&gt;PyTorch&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/Python%20Programming&quot; style=&quot;font-family: inherit;&quot;&gt;Python Programming&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/p/computer-vision.html&quot;&gt;Computer Vision&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;/h4&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.binarystudy.com/feeds/1586278106158197133/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.binarystudy.com/2023/08/different-ways-of-creating-python-virtual-environment.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/1586278106158197133'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/1586278106158197133'/><link rel='alternate' type='text/html' href='https://www.binarystudy.com/2023/08/different-ways-of-creating-python-virtual-environment.html' title='Different Ways of Creating Python Virtual Environment'/><author><name>BinaryStudy</name><uri>http://www.blogger.com/profile/15724128477203620724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-872352852572370142.post-5250098471938501385</id><published>2023-07-16T03:03:00.011-07:00</published><updated>2023-10-05T19:30:39.960-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="NumPy"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="Scikit-learn"/><category scheme="http://www.blogger.com/atom/ns#" term="SciPy"/><title type='text'>How to Calculate Cosine Similarity in Python?</title><content type='html'>&lt;p&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Introduction&lt;/h2&gt;&lt;p&gt;Cosine similarity is a popular metric used to measure the similarity between two vectors in a multi-dimensional space. It is widely employed in various fields, such as natural language processing, information retrieval, and recommendation systems. Cosine similarity measures the cosine of the angle between two vectors, and it ranges from -1 (completely dissimilar) to 1 (completely similar). A value close to 1 indicates a high similarity between the vectors.&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;In this article, we will explore how to calculate cosine similarity in Python using different methods and libraries, such as NumPy, scikit-learn and SciPy. We will walk through the steps to compute cosine similarity for both dense and sparse vectors.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;1. Using NumPy&lt;/h2&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;NumPy is a powerful library for numerical computations in Python. To calculate cosine similarity between two vectors using NumPy, follow these steps:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Step 1: Import the NumPy library&lt;/h4&gt;&lt;pre&gt;import numpy as np&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Step 2: Define two vectors as NumPy arrays&lt;/h4&gt;&lt;pre&gt;vector1 = np.array([1, 2, 3])&lt;p&gt;vector2 = np.array([4, 5, 6])&lt;/p&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Step 3: Compute the dot product of the two vectors&lt;/h4&gt;&lt;pre&gt;dot_product = np.dot(vector1, vector2)&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Step 4: Calculate the magnitudes (norms) of each vector&lt;/h4&gt;&lt;pre&gt;norm_vector1 = np.linalg.norm(vector1)&lt;br /&gt;norm_vector2 = np.linalg.norm(vector2)&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Step 5: Compute the cosine similarity using the dot product and vector norm&lt;/h4&gt;&lt;pre&gt;cosine_similarity = dot_product / (norm_vector1 * norm_vector2)&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Step 6: Print the cosine similarity&lt;/h4&gt;&lt;pre&gt;print(&quot;Cosine Similarity:&quot;, cosine_similarity)&lt;/pre&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Output&lt;/h4&gt;&lt;p&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #212121; display: inline; float: none; font-family: monospace; font-size: 14px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: pre; widows: 2; word-spacing: 0px;&quot;&gt;Cosine Similarity: 0.9746318461970762&lt;/span&gt; &lt;br /&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Complete Example&lt;/h3&gt;&lt;pre&gt;import numpy as np&lt;br /&gt;&lt;br /&gt;vector1 = np.array([1, 2, 3])&lt;br /&gt;&lt;br /&gt;vector2 = np.array([4, 5, 6])&lt;br /&gt;&lt;br /&gt;dot_product = np.dot(vector1, vector2)&lt;br /&gt;&lt;br /&gt;norm_vector1 = np.linalg.norm(vector1)&lt;br /&gt;&lt;br /&gt;norm_vector2 = np.linalg.norm(vector2)&lt;br /&gt;&lt;br /&gt;cosine_similarity = dot_product / (norm_vector1 * norm_vector2)&lt;br /&gt;&lt;br /&gt;print(&quot;Cosine Similarity:&quot;, cosine_similarity)&lt;/pre&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;&amp;nbsp;Output&lt;/h4&gt;&lt;p&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #212121; display: inline; float: none; font-family: monospace; font-size: 14px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: pre; widows: 2; word-spacing: 0px;&quot;&gt;Cosine Similarity: 0.9746318461970762&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;2. Using scikit-learn&lt;/h2&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Scikit-learn is a popular machine learning library that provides efficient implementations for various similarity metrics, including cosine similarity. To calculate cosine similarity using scikit-learn, follow these steps:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Step 1: Import the necessary module from scikit-learn&lt;/h4&gt;&lt;pre&gt;from sklearn.metrics.pairwise import cosine_similarity&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Step 2: Define two vectors as NumPy arrays (same as before)&lt;/h4&gt;&lt;pre&gt;vector1 = np.array([1, 2, 3])&lt;br /&gt;vector2 = np.array([4, 5, 6])&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Step 3: Reshape the vectors into 2D arrays (required by scikit-learn)&lt;/h4&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;vector1 = vector1.reshape(1, -1)&lt;br /&gt;vector2 = vector2.reshape(1, -1)&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Step 4: Calculate the cosine similarity using the &#39;cosine_similarity&#39; function&lt;/h4&gt;&lt;p&gt;&lt;/p&gt;&lt;pre&gt;cosine_similarity_score = cosine_similarity(vector1, vector2)&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Step 5: Print the cosine similarity&lt;/h4&gt;&lt;pre&gt;print(&quot;Cosine Similarity:&quot;, cosine_similarity_score[0][0])&lt;/pre&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Output&lt;/h4&gt;&lt;p&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #212121; display: inline; float: none; font-family: monospace; font-size: 14px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: pre; widows: 2; word-spacing: 0px;&quot;&gt;Cosine Similarity: 0.9746318461970762&lt;/span&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Complete Example&lt;/h3&gt;&lt;pre&gt;from sklearn.metrics.pairwise import cosine_similarity&lt;br /&gt;&lt;br /&gt;vector1 = np.array([1, 2, 3])&lt;br /&gt;&lt;br /&gt;vector2 = np.array([4, 5, 6])&lt;br /&gt;&lt;br /&gt;vector1 = vector1.reshape(1, -1)&lt;br /&gt;&lt;br /&gt;vector2 = vector2.reshape(1, -1)&lt;br /&gt;&lt;br /&gt;cosine_similarity_score = cosine_similarity(vector1, vector2)&lt;br /&gt;&lt;br /&gt;print(&quot;Cosine Similarity:&quot;, cosine_similarity_score[0][0])&lt;/pre&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Output &lt;br /&gt;&lt;/h4&gt;&lt;p&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #212121; display: inline; float: none; font-family: monospace; font-size: 14px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: pre; widows: 2; word-spacing: 0px;&quot;&gt;Cosine Similarity: 0.9746318461970762&lt;/span&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;3. Using SciPy&lt;/h2&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;SciPy is another powerful library for scientific and technical computing in Python. It includes a function to compute cosine similarity for dense vectors. To use SciPy for calculating cosine similarity, follow these steps:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Step 1: Import the necessary function from SciPy&lt;/h4&gt;&lt;pre&gt;from scipy.spatial.distance import cosine&lt;/pre&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Step 2: Define two vectors as NumPy arrays (same as before)&lt;/h4&gt;&lt;pre&gt;vector1 = np.array([1, 2, 3])&lt;br /&gt; vector2 = np.array([4, 5, 6])&lt;/pre&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Step 3: Calculate the cosine similarity using the &#39;cosine&#39; function&lt;/h4&gt;&lt;pre&gt;cosine_similarity_score = 1 - cosine(vector1, vector2)&lt;/pre&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Step 4: Print the cosine similarity&lt;/h4&gt;&lt;pre&gt;print(&quot;Cosine Similarity:&quot;, cosine_similarity_score)&lt;/pre&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Output&lt;/h4&gt;&lt;p&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #212121; display: inline; float: none; font-family: monospace; font-size: 14px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: pre; widows: 2; word-spacing: 0px;&quot;&gt;Cosine Similarity: 0.9746318461970761&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Complete Example &lt;br /&gt;&lt;/h3&gt;&lt;pre&gt;from scipy.spatial.distance import cosine&lt;br /&gt;&lt;br /&gt;vector1 = np.array([1, 2, 3])&lt;br /&gt;&lt;br /&gt;vector2 = np.array([4, 5, 6])&lt;br /&gt;&lt;br /&gt;cosine_similarity_score = 1 - cosine(vector1, vector2)&lt;br /&gt;&lt;br /&gt;print(&quot;Cosine Similarity:&quot;, cosine_similarity_score)&lt;/pre&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Output&lt;/h4&gt;&lt;p&gt;&lt;span style=&quot;-webkit-text-stroke-width: 0px; background-color: white; color: #212121; display: inline; float: none; font-family: monospace; font-size: 14px; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-decoration-thickness: initial; text-indent: 0px; text-transform: none; white-space: pre; widows: 2; word-spacing: 0px;&quot;&gt;Cosine Similarity: 0.9746318461970761&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Conclusion&lt;/h3&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;In this article, we learned how to calculate cosine similarity in Python using various methods and libraries. We explored implementations using &lt;b&gt;NumPy&lt;/b&gt;, &lt;b&gt;scikit-learn&lt;/b&gt;, and &lt;b&gt;SciPy&lt;/b&gt;, both for dense and sparse vectors. Cosine similarity is a powerful tool for measuring similarity between vectors and finds widespread application in various fields, especially in natural language processing and recommendation systems. Whether you are working with dense or sparse data, Python offers efficient libraries to compute cosine similarity and utilize it in your projects effectively.&lt;/p&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;font-size: 12px; margin: 0px; text-align: center;&quot;&gt;Advertisements&lt;/div&gt;&lt;p&gt;&lt;!--Showing Google Ads--&gt;&lt;script async=&quot;&quot; crossorigin=&quot;anonymous&quot; src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1380317796882611&quot;&gt;&lt;/script&gt;&lt;!--in_post_ads1--&gt;&lt;ins class=&quot;adsbygoogle&quot; data-ad-client=&quot;ca-pub-1380317796882611&quot; data-ad-format=&quot;auto&quot; data-ad-slot=&quot;6417412882&quot; data-full-width-responsive=&quot;true&quot; style=&quot;display: block;&quot;&gt;&lt;/ins&gt;&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;&lt;/p&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;h4 style=&quot;font-family: Merriweather, Georgia, serif; font-size: 16px;&quot;&gt;&lt;div style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium;&quot;&gt;Useful Resources:&lt;/div&gt;&lt;/h4&gt;&lt;/span&gt;&lt;h4&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;ul style=&quot;font-weight: 400;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/p/how-to.html&quot; style=&quot;font-family: inherit;&quot;&gt;How To&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/Data%20Science&quot;&gt;Data Science&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/PyTorch&quot;&gt;PyTorch&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/Python%20Programming&quot; style=&quot;font-family: inherit;&quot;&gt;Python Programming&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/p/computer-vision.html&quot;&gt;Computer Vision&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;/h4&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.binarystudy.com/feeds/5250098471938501385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.binarystudy.com/2023/07/how-to-calculate-cosine-similarity-in-python.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/5250098471938501385'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/5250098471938501385'/><link rel='alternate' type='text/html' href='https://www.binarystudy.com/2023/07/how-to-calculate-cosine-similarity-in-python.html' title='How to Calculate Cosine Similarity in Python?'/><author><name>BinaryStudy</name><uri>http://www.blogger.com/profile/15724128477203620724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-872352852572370142.post-3621434287007572876</id><published>2023-07-15T00:17:00.011-07:00</published><updated>2023-10-05T19:31:15.697-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Data Science"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="Tkinter"/><title type='text'>How to Install Tkinter in Python? A Step-by-Step Guide</title><content type='html'>&lt;h2 style=&quot;text-align: left;&quot;&gt;Introduction&lt;/h2&gt;&lt;p&gt;Tkinter is a powerful and popular graphical user interface (GUI) toolkit for Python. It provides a simple way to create interactive and visually appealing applications. Whether you&#39;re a beginner or an experienced Python developer, installing Tkinter is straightforward. In this guide, we will walk you through the installation process on different platforms.&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Prerequisites&lt;/h2&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Before proceeding with the installation, ensure that you have Python installed on your system. &lt;i&gt;&lt;b&gt;Tkinter is included in the standard library of Python versions 3.x, so no additional downloads are required for those versions.&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Installation Steps&lt;/h2&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;1. Windows&lt;/h3&gt;&lt;p&gt;For Windows users, &lt;b&gt;Tkinter &lt;/b&gt;is generally &lt;b&gt;pre-installed&lt;/b&gt; with Python. Follow these steps to verify the installation:&lt;br /&gt;&lt;br /&gt;Step 1: Open the Command Prompt by pressing &lt;span style=&quot;font-family: Consolas;&quot;&gt;Win + R&lt;/span&gt; and typing &lt;span style=&quot;font-family: Consolas;&quot;&gt;cmd&lt;/span&gt;. Hit Enter.&lt;br /&gt;Step 2: In the Command Prompt, type &lt;span style=&quot;font-family: Consolas;&quot;&gt;python&lt;/span&gt; and hit Enter to launch the Python interpreter.&lt;br /&gt;Step 3: Once the interpreter starts, type &quot;&lt;span style=&quot;font-family: Consolas;&quot;&gt;&lt;b&gt;import tkinter&lt;/b&gt;&quot;&amp;nbsp;&lt;/span&gt;and hit Enter.&lt;br /&gt;Step 4: If there are no error messages, Tkinter is already installed on your system.&lt;br /&gt;&lt;br /&gt;If Tkinter is &lt;b&gt;not installed&lt;/b&gt;, you can install it using the following steps:&lt;br /&gt;&lt;br /&gt;Step 1: Visit the Python website at https://www.python.org/.&lt;br /&gt;Step 2: Download the latest version of Python (3.x) for Windows.&lt;br /&gt;Step 3: Run the downloaded installer and follow the installation wizard.&lt;br /&gt;Step 4: Make sure to select the &quot;Add Python to PATH&quot; option during the installation.&lt;br /&gt;Step 5: Once the installation is complete, open the Command Prompt and verify the installation by typing &quot;&lt;span style=&quot;font-family: Consolas;&quot;&gt;&lt;b&gt;import tkinter&lt;/b&gt;&quot;.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;2. macOS&lt;/h3&gt;&lt;p&gt;Tkinter is usually pre-installed on macOS systems. To check if it&#39;s available, follow these steps:&lt;br /&gt;&lt;br /&gt;Step 1: Open the Terminal application.&lt;br /&gt;Step 2: In the Terminal, type &lt;span style=&quot;font-family: Consolas;&quot;&gt;python&lt;/span&gt; or &lt;span style=&quot;font-family: Consolas;&quot;&gt;python3&lt;/span&gt; and hit Enter to start the Python interpreter.&lt;br /&gt;Step 3: Type &lt;span style=&quot;font-family: Consolas;&quot;&gt;&lt;b&gt;import tkinte&lt;/b&gt;r&lt;/span&gt; and hit Enter.&lt;br /&gt;Step 4: If no errors occur, Tkinter is already installed.&lt;br /&gt;&lt;br /&gt;In case Tkinter is missing, you can install it by following these steps:&lt;br /&gt;&lt;br /&gt;Step 1: Open the Terminal application.&lt;br /&gt;Step 2: Install Python 3 (if not already installed) using Homebrew by running the command: &quot;&lt;span style=&quot;font-family: Consolas;&quot;&gt;&lt;b&gt;brew install python&lt;/b&gt;&lt;/span&gt;&quot;.&lt;br /&gt;Step 3: Once Python is installed, check the version by typing &quot;&lt;span style=&quot;font-family: Consolas;&quot;&gt;python3 --version&lt;/span&gt;&quot;.&lt;br /&gt;Step 4: If Python 3 is installed, Tkinter should be available by default.&lt;br /&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;3. Linux&lt;/h3&gt;&lt;p&gt;Most Linux distributions come with Python and Tkinter pre-installed. To confirm if Tkinter is available, follow these steps:&lt;br /&gt;&lt;br /&gt;Step 1: Open the terminal on your Linux distribution.&lt;br /&gt;Step 2: In the terminal, type &quot;&lt;span style=&quot;font-family: Consolas;&quot;&gt;python&lt;/span&gt;&quot; or &quot;&lt;span style=&quot;font-family: Consolas;&quot;&gt;python3&quot;&lt;/span&gt;&amp;nbsp;and hit Enter to start the Python interpreter.&lt;br /&gt;Step 3: Type &quot;&lt;b&gt;&lt;span style=&quot;font-family: Consolas;&quot;&gt;import tkinter&lt;/span&gt;&lt;/b&gt;&quot; and hit Enter.&lt;br /&gt;Step 4: If no errors occur, Tkinter is already installed.&lt;br /&gt;&lt;br /&gt;If Tkinter is not available, you can install it using the package manager specific to your Linux distribution:&lt;br /&gt;&lt;br /&gt;For Ubuntu and Debian-based systems:&lt;br /&gt;Step 1: Open the terminal and run the command: &quot;&lt;span style=&quot;font-family: Consolas;&quot;&gt;sudo apt-get install python3-tk&lt;/span&gt;&quot;.&lt;br /&gt;&lt;br /&gt;For Fedora and Red Hat-based systems:&lt;br /&gt;Step 1: Open the terminal and run the command: &quot;&lt;span style=&quot;font-family: Consolas;&quot;&gt;sudo dnf install python3-tkinter&lt;/span&gt;&quot;.&lt;br /&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Conclusion&lt;/h2&gt;&lt;p&gt;Tkinter is a versatile and widely-used GUI toolkit for Python that allows developers to create interactive applications. Whether you&#39;re using Windows, macOS, or Linux, the installation process is relatively straightforward. By following the steps outlined in this guide, you should now have Tkinter successfully installed on your system. You&#39;re now ready to explore the world of graphical user interface development with Python and Tkinter!&lt;/p&gt;&lt;div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;div style=&quot;font-size: 12px; margin: 0px; text-align: center;&quot;&gt;Advertisements&lt;/div&gt;&lt;p&gt;&lt;!--Showing Google Ads--&gt;&lt;script async=&quot;&quot; crossorigin=&quot;anonymous&quot; src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1380317796882611&quot;&gt;&lt;/script&gt;&lt;!--in_post_ads1--&gt;&lt;ins class=&quot;adsbygoogle&quot; data-ad-client=&quot;ca-pub-1380317796882611&quot; data-ad-format=&quot;auto&quot; data-ad-slot=&quot;6417412882&quot; data-full-width-responsive=&quot;true&quot; style=&quot;display: block;&quot;&gt;&lt;/ins&gt;&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;&lt;/p&gt;&lt;div&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;h4 style=&quot;font-family: Merriweather, Georgia, serif; font-size: 16px;&quot;&gt;&lt;div style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium;&quot;&gt;Useful Resources:&lt;/div&gt;&lt;/h4&gt;&lt;/span&gt;&lt;h4&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;ul style=&quot;font-weight: 400;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/p/how-to.html&quot; style=&quot;font-family: inherit;&quot;&gt;How To&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/Data%20Science&quot;&gt;Data Science&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/PyTorch&quot;&gt;PyTorch&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/search/label/Python%20Programming&quot; style=&quot;font-family: inherit;&quot;&gt;Python Programming&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.binarystudy.com/p/computer-vision.html&quot;&gt;Computer Vision&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;/h4&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='https://www.binarystudy.com/feeds/3621434287007572876/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.binarystudy.com/2023/07/how-to-install-tkinter-in-python-step-by-step-guide.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/3621434287007572876'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/872352852572370142/posts/default/3621434287007572876'/><link rel='alternate' type='text/html' href='https://www.binarystudy.com/2023/07/how-to-install-tkinter-in-python-step-by-step-guide.html' title='How to Install Tkinter in Python? A Step-by-Step Guide'/><author><name>BinaryStudy</name><uri>http://www.blogger.com/profile/15724128477203620724</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry></feed>