diff --git a/challenges/advanced-bonfires.json b/challenges/advanced-bonfires.json
index 2ee30908a0..d31921c7d8 100644
--- a/challenges/advanced-bonfires.json
+++ b/challenges/advanced-bonfires.json
@@ -11,7 +11,7 @@
"The user may fill out the form field any way they choose as long as it is a valid US number. The following are all valid formats for US numbers:",
"555-555-5555, (555)555-5555, (555) 555-5555, 555 555 5555, 5555555555, 1 555 555 5555",
"For this challenge you will be presented with a string such as \"800-692-7753\" or \"8oo-six427676;laskdjf\". Your job is to validate or reject the US phone number based on any combination of the formats provided above. The area code is required. If the country code is provided, you must confirm that the country code is \"1\". Return true if the string is a valid US phone number; otherwise false.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"tests": [
"expect(telephoneCheck(\"555-555-5555\")).to.be.a(\"boolean\");",
@@ -69,7 +69,7 @@
"description": [
"Create a function that takes two or more arrays and returns an array of the symmetric difference of the provided arrays.",
"The mathematical term symmetric difference refers to the elements in two sets that are in either the first or second set, but not in both.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function sym(args) {",
@@ -108,7 +108,7 @@
"cid is a 2d array listing available currency.",
"Return the string \"Insufficient Funds\" if cash-in-drawer is less than the change due. Return the string \"Closed\" if cash-in-drawer is equal to the change due.",
"Otherwise, return change in coin and bills, sorted in highest to lowest order.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function drawer(price, cash, cid) {",
@@ -160,7 +160,7 @@
"difficulty": "4.04",
"description": [
"Compare and update inventory stored in a 2d array against a second 2d array of a fresh delivery. Update current inventory item quantity, and if an item cannot be found, add the new item and quantity into the inventory array in alphabetical order.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function inventory(arr1, arr2) {",
@@ -215,7 +215,7 @@
"description": [
"Return the number of total permutations of the provided string that don't have repeated consecutive letters.",
"For example, 'aab' should return 2 because it has 6 total permutations, but only 2 of them don't have the same letter (in this case 'a') repeating.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function permAlone(str) {",
@@ -259,7 +259,7 @@
"For example, if the year and month are the same then only the day range should be displayed.",
"Secondly, if the starting year is the current year, and the ending year can be inferred by the reader, the year should be omitted.",
"Input date is formatted as YYYY-MM-DD",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function friendly(str) {",
diff --git a/challenges/basejumps.json b/challenges/basejumps.json
index 50b55a0063..2b07de0333 100644
--- a/challenges/basejumps.json
+++ b/challenges/basejumps.json
@@ -58,7 +58,7 @@
"Set the config flag for your Heroku environment and add MongoLab for your MongoDB instance by running the following command: cd ~/workspace/dist && heroku config:set NODE_ENV=production && heroku addons:add mongolab
.",
"As you build your app, you should frequently commit changes to your codebase. Make sure you're in the ~/workspace
directory by running cd ~/workspace
. Then you can this code to stage the changes to your changes and commit them: git commit -am \"your commit message\"
. Note that you should replace \"your commit message\" with a short summary of the changes you made to your code, such as \"added a records controller and corresponding routes\".",
"You can push these new commits to GitHub by running git push origin master
, and to Heroku by running grunt --force && grunt buildcontrol:heroku
.",
- "Now you're ready to move on to your first Basejump. Click the \"I've completed this challenge\" button and enter the URLs for both your GitHub repository and your live app running on Heroku. If you pair programmed with a friend, enter his or her Free Code Camp username as well so that you both get credit for completing it."
+ "Now you're ready to move on to your first Basejump. Click the \"I've completed this challenge\" and move on."
],
"challengeType": 2,
"tests": []
diff --git a/challenges/basic-bonfires.json b/challenges/basic-bonfires.json
index e1a7d98653..37692c2dad 100644
--- a/challenges/basic-bonfires.json
+++ b/challenges/basic-bonfires.json
@@ -91,7 +91,7 @@
"Reverse the provided string.",
"You may need to turn the string into an array before you can reverse it.",
"Your result must be a string.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function reverseString(str) {",
@@ -133,7 +133,7 @@
"If the integer is represented with the letter n, a factorial is the product of all positive integers less than or equal to n.",
"Factorials are often represented with the shorthand notation n!",
"For example: 5! = 1 * 2 * 3 * 4 * 5 = 120f",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function factorialize(num) {",
@@ -166,7 +166,7 @@
"A palindrome is a word or sentence that's spelled the same way both forward and backward, ignoring punctuation, case, and spacing.",
"You'll need to remove punctuation and turn everything lower case in order to check for palindromes.",
"We'll pass strings with varying formats, such as \"racecar\", \"RaceCar\", and \"race CAR\" among others.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"tests": [
"expect(palindrome(\"eye\")).to.be.a(\"boolean\");",
@@ -210,7 +210,7 @@
"description": [
"Return the length of the longest word in the provided sentence.",
"Your response should be a number.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function findLongestWord(str) {",
@@ -249,7 +249,7 @@
"description": [
"Return the provided string with the first letter of each word capitalized.",
"For the purpose of this exercise, you should also capitalize connecting words like 'the' and 'of'.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function titleCase(str) {",
@@ -287,7 +287,7 @@
"Return an array consisting of the largest number from each provided sub-array. For simplicity, the provided array will contain exactly 4 sub-arrays.",
"Remember, you can iterate through an array with a simple for loop, and access each member with array syntax arr[i] .",
"If you are writing your own Chai.js tests, be sure to use a deep equal statement instead of an equal statement when comparing arrays.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function largestOfFour(arr) {",
@@ -323,7 +323,7 @@
"difficulty": "1.07",
"description": [
"Check if a string (first argument) ends with the given target string (second argument).",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function end(str, target) {",
@@ -336,6 +336,8 @@
],
"tests": [
"assert.strictEqual(end('Bastian', 'n'), true, 'should equal true if target equals end of string');",
+ "assert.strictEqual(end('Connor', 'n'), false, 'should equal false if target does not equal end of string');",
+ "assert.strictEqual(end('Walking on water and developing software from a specification are easy if both are frozen.', 'specification'), false, 'should equal false if target does not equal end of string');",
"assert.strictEqual(end('He has to give me a new name', 'name'), true, 'should equal true if target equals end of string');",
"assert.strictEqual(end('If you want to save our world, you must hurry. We dont know how much longer we can withstand the nothing', 'mountain'), false, 'should equal false if target does not equal end of string');"
],
@@ -360,7 +362,7 @@
"difficulty": "1.08",
"description": [
"Repeat a given string (first argument) n times (second argument). Return an empty string if n is a negative number.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function repeat(str, num) {",
@@ -397,7 +399,7 @@
"description": [
"Truncate a string (first argument) if it is longer than the given maximum string length (second argument). Return the truncated string with a '...' ending.",
"Note that the three dots at the end add to the string length.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function truncate(str, num) {",
@@ -433,7 +435,7 @@
"difficulty": "1.10",
"description": [
"Write a function that splits an array (first argument) into groups the length of size (second argument) and returns them as a multidimensional array.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function chunk(arr, size) {",
@@ -470,7 +472,7 @@
"difficulty": "1.11",
"description": [
"Return the remaining elements of an array after chopping off n elements from the head.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function slasher(arr, howMany) {",
@@ -509,9 +511,8 @@
"Return true if the string in the first element of the array contains all of the letters of the string in the second element of the array.",
"For example, ['hello', 'Hello'], should return true because all of the letters in the second string are present in the first, ignoring case.",
"The arguments ['hello', 'hey'] should return false because the string 'hello' does not contain a 'y'.",
- "Another example, ['Alien', 'line'], should return true because all of the letters in 'line' are present in 'Alien'.",
- "Lastly, ['Mary', 'Aarmy'] should return false because 'Mary' is only 4 letters while 'Aarmy' is 5, so 'Mary' can't possibly contain 'Aarmy'",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Lastly, ['Alien', 'line'], should return true because all of the letters in 'line' are present in 'Alien'.",
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function mutation(arr) {",
@@ -525,7 +526,7 @@
"expect(mutation(['hello', 'Hello'])).to.be.true;",
"expect(mutation(['zyxwvutsrqponmlkjihgfedcba', 'qrstu'])).to.be.true;",
"expect(mutation(['Mary', 'Army'])).to.be.true;",
- "expect(mutation(['Mary', 'Aarmy'])).to.be.false;",
+ "expect(mutation(['Mary', 'Aarmy'])).to.be.true;",
"expect(mutation(['Alien', 'line'])).to.be.true;",
"expect(mutation(['floor', 'for'])).to.be.true;"
],
@@ -551,7 +552,7 @@
"description": [
"Remove all falsey values from an array.",
"Falsey values in javascript are false, null, 0, \"\", undefined, and NaN.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function bouncer(arr) {",
@@ -588,7 +589,7 @@
"difficulty": "1.55",
"description": [
"Make a function that looks through a list (first argument) and returns an array of all objects that have equivalent property values (second argument).",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function where(collection, source) {",
@@ -626,7 +627,7 @@
"difficulty": "1.60",
"description": [
"You will be provided with an initial array (the first argument in the destroyer function), followed by one or more arguments. Remove all elements from the initial array that are of the same value as these arguments.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function destroyer(arr) {",
@@ -663,7 +664,7 @@
"description": [
"Return the lowest index at which a value (second argument) should be inserted into a sorted array (first argument).",
"For example, where([1,2,3,4], 1.5) should return 1 because it is greater than 1 (0th index), but less than 2 (1st index).",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function where(arr, num) {",
@@ -699,7 +700,7 @@
"description": [
"We'll pass you an array of two numbers. Return the sum of those two numbers and all numbers between them.",
"The lowest number will not always come first.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function sumAll(arr) {",
@@ -738,7 +739,7 @@
"difficulty": "2.01",
"description": [
"Compare two arrays and return a new array with any items not found in both of the original arrays.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function diff(arr1, arr2) {",
@@ -791,7 +792,7 @@
"description": [
"Convert the given number into a roman numeral.",
"All roman numerals answers should be provided in upper-case.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function convert(num) {",
@@ -834,7 +835,7 @@
"Second argument is the word that you will be replacing (before).",
"Third argument is what you will be replacing the second argument with (after).",
"NOTE: Preserve the case of the original word when you are replacing it. For example if you mean to replace the word 'Book' with the word 'dog', it should be replaced as 'Dog'",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function replace(str, before, after) {",
@@ -875,7 +876,7 @@
"Translate the provided string to pig latin.",
"Pig Latin takes the first consonant (or consonant cluster) of an English word, moves it to the end of the word and suffixes an \"ay\".",
"If a word begins with a vowel you just add \"way\" to the end.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function translate(str) {",
@@ -916,7 +917,7 @@
"The DNA strand is missing the pairing element. Match each character with the missing element and return the results as a 2d array.",
"Base pairs are a pair of AT and CG. Match the missing element to the provided character.",
"Return the provided character as the first element in each array.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function pair(str) {",
@@ -948,7 +949,7 @@
"description": [
"Find the missing letter in the passed letter range and return it.",
"If all letters are present in the range, return undefined.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function fearNotLetter(str) {",
@@ -985,7 +986,7 @@
"description": [
"Check if a value is classified as a boolean primitive. Return true or false.",
"Boolean primitives are true and false.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function boo(bool) {",
@@ -1029,7 +1030,7 @@
"In other words, all values present from all arrays should be included in their original order, but with no duplicates in the final array.",
"The unique numbers should be sorted by their original order, but the final array should not be sorted in numerical order.",
"Check the assertion tests for examples.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function unite(arr1, arr2, arr3) {",
@@ -1063,7 +1064,7 @@
"difficulty": "2.07",
"description": [
"Convert the characters \"&\", \"<\", \">\", '\"', and \"'\", in a string to their corresponding HTML entities.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function convert(str) {",
@@ -1098,7 +1099,7 @@
"difficulty": "2.08",
"description": [
"Convert a string to spinal case. Spinal case is all-lowercase-words-joined-by-dashes.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function spinalCase(str) {",
@@ -1139,7 +1140,7 @@
"Return the sum of all odd Fibonacci numbers up to and including the passed number if it is a Fibonacci number.",
"The first few numbers of the Fibonacci sequence are 1, 1, 2, 3, 5 and 8, and each subsequent number is the sum of the previous two numbers.",
"As an example, passing 4 to the function should return 5 because all the odd Fibonacci numbers under 4 are 1, 1, and 3.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function sumFibs(num) {",
@@ -1179,7 +1180,7 @@
"Sum all the prime numbers up to and including the provided number.",
"A prime number is defined as having only two divisors, 1 and itself. For example, 2 is a prime number because it's only divisible by 1 and 2. 1 isn't a prime number, because it's only divisible by itself.",
"The provided number may not be a prime.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function sumPrimes(num) {",
@@ -1216,7 +1217,7 @@
"description": [
"Find the smallest number that is evenly divisible by all numbers in the provided range.",
"The range will be an array of two numbers that will not necessarily be in numerical order.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function smallestCommons(arr) {",
@@ -1253,7 +1254,7 @@
"difficulty": "2.12",
"description": [
"Create a function that looks through an array (first argument) and returns the first element in the array that passes a truth test (second argument).",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function find(arr, func) {",
@@ -1288,7 +1289,7 @@
"difficulty": "2.13",
"description": [
"Drop the elements of an array (first argument), starting from the front, until the predicate (second argument) returns true.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function drop(arr, func) {",
@@ -1325,7 +1326,7 @@
"difficulty": "2.14",
"description": [
"Flatten a nested array. You must account for varying levels of nesting.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function steamroller(arr) {",
@@ -1362,7 +1363,7 @@
"description": [
"Return an English translated sentence of the passed binary string.",
"The binary string will be space separated.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function binaryAgent(str) {",
@@ -1399,7 +1400,7 @@
"Check if the predicate (second argument) returns truthy (defined) for all elements of a collection (first argument).",
"For this, check to see if the property defined in the second argument is present on every element of the collection.",
"Remember, you can access object properties through either dot notation or [] notation.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function every(collection, pre) {",
@@ -1437,7 +1438,7 @@
"Create a function that sums two arguments together. If only one argument is provided, return a function that expects one additional argument and will return the sum.",
"For example, add(2, 3) should return 5, and add(2) should return a function that is waiting for an argument so that var sum2And = add(2); return sum2And(3); // 5
",
"If either argument isn't a valid number, return undefined.",
- "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
+ "Remember to use RSAP if you get stuck. Try to pair program. Write your own code."
],
"challengeSeed": [
"function add() {",
diff --git a/challenges/basic-html5-and-css.json b/challenges/basic-html5-and-css.json
index dd7f467e9b..c07b2e3c89 100644
--- a/challenges/basic-html5-and-css.json
+++ b/challenges/basic-html5-and-css.json
@@ -37,7 +37,7 @@
"La mayoría de los elementos HTML tienen una etiqueta de apertura
y una etiqueta de cierre
. Las etiquetas de apertura se ven como: <h1>
. Las etiquetas de cierre se ven como: </h1>
. Fíjate que la única diferencia entre las etiquetas de apertura y de cierre es que estas últimas tienen un / después de su signo de apertura (<).",
"Una vez que hayas completado cada desafío, y que hayas pasado todas sus pruebas, el botón \"Ir a mi siguiente desafío\" se activará. Haz click en él - o presiona control y enter al mismo tiempo - para avanzar al siguiente desafío.",
"Para activar el botón \"Ir a mi siguiente desafío\" de este ejercicio, cambia tu texto de la etiqueta h1
para que diga \"Hello World\" en lugar de \"Hello\"."
- ],
+ ],
"namePt": "",
"descriptionPt": []
},
@@ -73,7 +73,7 @@
"El elemento h2 que ingreses creará un elemento h2 en el sitio web.",
"Este elemento le dice al navegador cómo mostrar el texto que contiene.",
"Los elementos h2
son ligeramente más pequeños que los elementos h1
. También hay elementos h3
, h4
, h5
y h6
."
- ],
+ ],
"namePt": "",
"descriptionPt": []
},
@@ -107,7 +107,7 @@
"Crea un elemento párrafo debajo de tu elemento h2, y dale el texto \"Hello Paragraph\". Apenas escribas la etiqueta de apertura <p>
, una de nuestras pruebas pasarán (ya que ésta es HTML válido). Asegúrate de cerrar el elemento agregando la etiqueta de cierre </p>
.",
"Los elementos párrafo son los principales elementos para los párrafos de texto en tamaño normal en sitios web.",
"Tú puedes crear un elemento párrafo como éste: <p>I'm a p tag!</p>
."
- ],
+ ],
"namePt": "",
"descriptionPt": []
},
@@ -203,7 +203,7 @@
"assert(($('h1').length === 0), 'Comment out your h1
element so that it is not visible on your page.')",
"assert(($('h2').length > 0), 'Leave your h2
element uncommented so that is not visible on your page.')",
"assert(($('p').length === 0), 'Comment out your p
element so that it is not visible on your page.')",
- "assert(editor.match(/-->/g).length > 0, 'Be sure to close each of your comments with -->
.')"
+ "assert(editor.match(/-->/g).length > 1, 'Be sure to close each of your comments with -->
.')"
],
"challengeSeed": [
"