diff --git a/1-js/3-writing-js/2-coding-style/code-style.svg b/1-js/3-writing-js/2-coding-style/code-style.svg
index 727538ceac..46625d952b 100644
--- a/1-js/3-writing-js/2-coding-style/code-style.svg
+++ b/1-js/3-writing-js/2-coding-style/code-style.svg
@@ -23,75 +23,75 @@
между скобкой и первым параметромнет пробела
-
-
+
+ Отступ 2 пробела
-
-
+
+ Пробел после for
-
-
+
+ } else { без перевода строки
-
-
+
+ Пробелы вокругвложенного вызова
-
-
+
+ Пустая строкамежду логическими блоками
-
-
+
+ Длина строкине более 80 символов
-
-
+
+ точка с запятой ;обязательна
-
-
+
+ Пробелы вокруг операторов
-
-
+
+ Фигурная скобка {на той же строке, через пробел
-
-
-
-
+
+
+
+ Пробел между параметрами
-
-
+
+ Пробел между параметрами
-
-
+
+
\ No newline at end of file
diff --git a/1-js/4-data-structures/4-object/object-person-empty.svg b/1-js/4-data-structures/4-object/object-person-empty.svg
index 29ef8bf6b4..dbac10c1e1 100644
--- a/1-js/4-data-structures/4-object/object-person-empty.svg
+++ b/1-js/4-data-structures/4-object/object-person-empty.svg
@@ -13,8 +13,8 @@
person
-
-
+
+
\ No newline at end of file
diff --git a/1-js/4-data-structures/7-array/array-pop.svg b/1-js/4-data-structures/7-array/array-pop.svg
index bc0a864c32..6f97669222 100644
--- a/1-js/4-data-structures/7-array/array-pop.svg
+++ b/1-js/4-data-structures/7-array/array-pop.svg
@@ -6,19 +6,19 @@
-
-
+
+ 01
-
+ 2
-
+ 3
@@ -41,15 +41,15 @@
очистить
-
-
+
+ 01
-
+ 2
diff --git a/1-js/4-data-structures/7-array/array-shift.svg b/1-js/4-data-structures/7-array/array-shift.svg
index a8584338cd..ee1cf8d451 100644
--- a/1-js/4-data-structures/7-array/array-shift.svg
+++ b/1-js/4-data-structures/7-array/array-shift.svg
@@ -9,11 +9,11 @@
1
-
+ 2
-
+ 3
@@ -29,19 +29,19 @@
length = 4
-
-
+
+ 01
-
+ 2
-
+ 3
@@ -67,8 +67,8 @@
элементывлево
-
-
+
+ 0
@@ -76,15 +76,15 @@
"Яблоко"
-
-
+
+ 01
-
+ 2
diff --git a/1-js/4-data-structures/7-array/array-speed.svg b/1-js/4-data-structures/7-array/array-speed.svg
index 227243c67d..c4e300aad4 100644
--- a/1-js/4-data-structures/7-array/array-speed.svg
+++ b/1-js/4-data-structures/7-array/array-speed.svg
@@ -6,39 +6,39 @@
-
-
+
+ 01
-
+ 2
-
+ 3
-
+ pop
-
+ unshift
-
+ push
-
+ shift
diff --git a/1-js/4-data-structures/8-array-methods/9-output-single-linked-list/linked-list.svg b/1-js/4-data-structures/8-array-methods/9-output-single-linked-list/linked-list.svg
index cb49665dec..0df9bcdf6f 100644
--- a/1-js/4-data-structures/8-array-methods/9-output-single-linked-list/linked-list.svg
+++ b/1-js/4-data-structures/8-array-methods/9-output-single-linked-list/linked-list.svg
@@ -6,51 +6,51 @@
-
+ value1
-
-
+
+ next
-
+ value2
-
-
+
+ next
-
+ value3
-
-
+
+ next
-
+ value4
-
-
+
+ next
diff --git a/1-js/4-data-structures/9-array-iteration/reduce.svg b/1-js/4-data-structures/9-array-iteration/reduce.svg
index aadaaeae9c..7cb12bc88c 100644
--- a/1-js/4-data-structures/9-array-iteration/reduce.svg
+++ b/1-js/4-data-structures/9-array-iteration/reduce.svg
@@ -6,7 +6,7 @@
-
+ 1
@@ -16,7 +16,7 @@
current1
-
+ 2
@@ -26,7 +26,7 @@
current2
-
+ 3
@@ -36,7 +36,7 @@
current3
-
+ 4
@@ -46,7 +46,7 @@
current4
-
+ 5
@@ -56,8 +56,8 @@
current5
-
-
+
+ 0+1+2+3+4+5 = 15
diff --git a/1-js/5-functions-closures/6-memory-management/family-no-family.svg b/1-js/5-functions-closures/6-memory-management/family-no-family.svg
index 8a6b18b56d..e1d51b9ef3 100644
--- a/1-js/5-functions-closures/6-memory-management/family-no-family.svg
+++ b/1-js/5-functions-closures/6-memory-management/family-no-family.svg
@@ -6,9 +6,9 @@
-
-
-
+
+
+ window
@@ -42,15 +42,15 @@
Object
-
-
-
-
+
+
+
+ husband
-
-
+
+ family: null
diff --git a/1-js/5-functions-closures/6-memory-management/family-no-father-2.svg b/1-js/5-functions-closures/6-memory-management/family-no-father-2.svg
index 19f25a06f5..66eac6efc1 100644
--- a/1-js/5-functions-closures/6-memory-management/family-no-father-2.svg
+++ b/1-js/5-functions-closures/6-memory-management/family-no-father-2.svg
@@ -6,7 +6,7 @@
-
+ window
@@ -30,10 +30,10 @@
Object
-
-
-
-
+
+
+
+
\ No newline at end of file
diff --git a/1-js/5-functions-closures/6-memory-management/family-no-father.svg b/1-js/5-functions-closures/6-memory-management/family-no-father.svg
index 3225b00745..837095ec6b 100644
--- a/1-js/5-functions-closures/6-memory-management/family-no-father.svg
+++ b/1-js/5-functions-closures/6-memory-management/family-no-father.svg
@@ -6,7 +6,7 @@
-
+ window
@@ -40,12 +40,12 @@
Object
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/1-js/5-functions-closures/6-memory-management/family.svg b/1-js/5-functions-closures/6-memory-management/family.svg
index 0f34310c22..3cfc482663 100644
--- a/1-js/5-functions-closures/6-memory-management/family.svg
+++ b/1-js/5-functions-closures/6-memory-management/family.svg
@@ -6,9 +6,9 @@
-
-
-
+
+
+ window
@@ -45,17 +45,17 @@
Object
-
-
-
-
-
-
+
+
+
+
+
+ husband
-
-
+
+
\ No newline at end of file
diff --git a/1-js/7-js-misc/3-setTimeout-setInterval/setinterval-interval.svg b/1-js/7-js-misc/3-setTimeout-setInterval/setinterval-interval.svg
index aa5e3ab96b..032c31831a 100644
--- a/1-js/7-js-misc/3-setTimeout-setInterval/setinterval-interval.svg
+++ b/1-js/7-js-misc/3-setTimeout-setInterval/setinterval-interval.svg
@@ -11,19 +11,19 @@
func(1)
-
+ func(2)
-
+ func(3)
-
+ 100
diff --git a/1-js/7-js-misc/3-setTimeout-setInterval/settimeout-interval.svg b/1-js/7-js-misc/3-setTimeout-setInterval/settimeout-interval.svg
index f0895fed47..43829c8c60 100644
--- a/1-js/7-js-misc/3-setTimeout-setInterval/settimeout-interval.svg
+++ b/1-js/7-js-misc/3-setTimeout-setInterval/settimeout-interval.svg
@@ -11,19 +11,19 @@
func(1)
-
+ func(2)
-
+ func(3)
-
+
@@ -33,16 +33,16 @@
100
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/1-js/9-prototypes/1-prototype/proto-animal-rabbit.svg b/1-js/9-prototypes/1-prototype/proto-animal-rabbit.svg
index 5acdf9e3e1..ffa9ebfd13 100644
--- a/1-js/9-prototypes/1-prototype/proto-animal-rabbit.svg
+++ b/1-js/9-prototypes/1-prototype/proto-animal-rabbit.svg
@@ -6,22 +6,22 @@
-
+ eats: trueanimal
-
+ jumps: truerabbit
-
-
+
+ __proto__
diff --git a/1-js/9-prototypes/3-native-prototypes/native-prototypes-array-tostring.svg b/1-js/9-prototypes/3-native-prototypes/native-prototypes-array-tostring.svg
index 4ad00ffabf..dd508be6ae 100644
--- a/1-js/9-prototypes/3-native-prototypes/native-prototypes-array-tostring.svg
+++ b/1-js/9-prototypes/3-native-prototypes/native-prototypes-array-tostring.svg
@@ -6,7 +6,7 @@
-
+ toString: function...
@@ -14,7 +14,7 @@
Array.prototype
-
+ toString: function...
@@ -22,14 +22,14 @@
Object.prototype
-
-
-
+
+
+ __proto__
-
-
+
+ __proto__
diff --git a/1-js/9-prototypes/3-native-prototypes/native-prototypes-classes.svg b/1-js/9-prototypes/3-native-prototypes/native-prototypes-classes.svg
index b24345b708..d2a97150c3 100644
--- a/1-js/9-prototypes/3-native-prototypes/native-prototypes-classes.svg
+++ b/1-js/9-prototypes/3-native-prototypes/native-prototypes-classes.svg
@@ -6,7 +6,7 @@
-
+ toString: functionдругие методы объектов
@@ -14,17 +14,17 @@
Object.prototype
-
-
+
+ __proto__
-
-
+
+ null
-
+ slice: functionдругие методы массивов
@@ -35,7 +35,7 @@
Array.prototype
-
+ __proto__
@@ -46,7 +46,7 @@
Function.prototype
-
+ toFixed: functionдругие методы чисел
@@ -57,36 +57,36 @@
__proto__
-
-
-
-
-
+
+
+
+
+ [1, 2, 3]
-
+ function f(args) { ...}
-
+ 5
-
-
+
+ __proto__
-
-
+
+ __proto__
-
-
+
+ __proto__
diff --git a/1-js/9-prototypes/3-native-prototypes/native-prototypes-object.svg b/1-js/9-prototypes/3-native-prototypes/native-prototypes-object.svg
index 8b9d9fef52..2cab583948 100644
--- a/1-js/9-prototypes/3-native-prototypes/native-prototypes-object.svg
+++ b/1-js/9-prototypes/3-native-prototypes/native-prototypes-object.svg
@@ -6,7 +6,7 @@
-
+ toString: functionдругие методы объектов
@@ -14,17 +14,17 @@
Object.prototype
-
+ obj
-
-
+
+ __proto__
-
-
+
+ __proto__
diff --git a/1-js/9-prototypes/5-class-inheritance/class-inheritance-array-object.svg b/1-js/9-prototypes/5-class-inheritance/class-inheritance-array-object.svg
index 731ad706ef..4ceb549c40 100644
--- a/1-js/9-prototypes/5-class-inheritance/class-inheritance-array-object.svg
+++ b/1-js/9-prototypes/5-class-inheritance/class-inheritance-array-object.svg
@@ -6,7 +6,7 @@
-
+ slice: function...
@@ -17,7 +17,7 @@
arr
-
+ hasOwnProperty: function...
@@ -25,14 +25,14 @@
Object.prototype
-
-
-
+
+
+ __proto__
-
-
+
+ __proto__
diff --git a/1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-animal.svg b/1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-animal.svg
index 77f4dc66fa..f7b19ce7df 100644
--- a/1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-animal.svg
+++ b/1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-animal.svg
@@ -6,7 +6,7 @@
-
+ jump: function
@@ -16,7 +16,7 @@
rabbit
-
+ run: functionstop: function
@@ -24,14 +24,14 @@
Animal.prototype
-
-
-
+
+
+ __proto__
-
-
+
+ __proto__
diff --git a/1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-run-animal.svg b/1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-run-animal.svg
index 3a6bcf7e45..ed73c590c7 100644
--- a/1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-run-animal.svg
+++ b/1-js/9-prototypes/5-class-inheritance/class-inheritance-rabbit-run-animal.svg
@@ -6,7 +6,7 @@
-
+ jump: function
@@ -18,7 +18,7 @@
rabbit
-
+ run: functionstop: function
@@ -26,14 +26,14 @@
Animal.prototype
-
-
-
+
+
+ __proto__
-
-
+
+ __proto__
diff --git a/11-regular-expressions-javascript/3-regexp-character-classes/article.md b/11-regular-expressions-javascript/3-regexp-character-classes/article.md
index 2a9e449aa1..79c3f6de08 100644
--- a/11-regular-expressions-javascript/3-regexp-character-classes/article.md
+++ b/11-regular-expressions-javascript/3-regexp-character-classes/article.md
@@ -6,11 +6,11 @@
[cut]
-Класс символов -- это специальное обозначение, под которое подходит любой символ данного класса.
+Класс символов -- это специальное обозначение, под которое подходит любой символ из определённого набора.
-Например, класс "любая цифра" обозначается `\d`. Это обозначение вставляется в паттерн наравне с остальными символами, и при поиске под него подходит любая цифра.
+Например, есть класс "любая цифра". Он обозначается `\d`. Это обозначение вставляется в шаблон, и при поиске под него подходит любая цифра.
-Регулярное выражение /\d/ ищет ровно одну цифру (первую):
+То есть, регулярное выражение /\d/ ищет ровно одну цифру:
```js
//+ run
@@ -18,10 +18,11 @@ var str = "+7(903)-123-45-67";
var reg = /\d/;
+// не глобальный регэксп, поэтому ищет только первую цифру
alert( str.match(reg) ); // 7
```
-...Ну а для поиска всех цифр достаточно добавить к нему флаг `g`:
+...Ну а для поиска всех цифр достаточно добавить к регэкспу флаг `g`:
```js
//+ run
@@ -29,28 +30,30 @@ var str = "+7(903)-123-45-67";
var reg = /\d/g;
-alert( str.match(reg) ); // массив цифр: 7,9,0,3,1,2,3,4,5,6,7
+alert( str.match(reg) ); // массив всех совпадений: 7,9,0,3,1,2,3,4,5,6,7
```
-## Важнейшие классы
+## Важнейшие классы: \d \s \w
Это был класс для цифр.
-Конечно же, есть и другие. Самые полезные классы:
+Конечно же, есть и другие.
+
+Наиболее часто используются:
`\d` (от английского "digit" - "цифра")
Цифра, символ от `0` до `9`.
`\s` (от английского "space" - "пробел")
Пробельный символ, включая табы, переводы строки и т.п.
`\w` (от английского "word" -- "слово")
-
Символ латинского алфавита или цифра или подчёркивание `'_'`. Не-английские буквы не являются `\w`.
+
Символ "слова", а точнее -- буква латинского алфавита или цифра или подчёркивание `'_'`. Не-английские буквы не являются `\w`, то есть русская буква не подходит.
-Регулярное выражение как правило содержит одновременно и обычные символы и классы.
+Например, \d\s\w обозначает цифру, за которой идёт пробельный символ, а затем символ слова.
-Например, CSS\d найдёт строку CSS, с любой цифрой после неё.
+Регулярное выражение может содержать одновременно и обычные символы и классы.
-Пример ниже найдёт строку `CSS` с любой цифровой версией:
+Например, CSS\d найдёт строку CSS, с любой цифрой после неё:
```js
//+ run
@@ -60,7 +63,7 @@ var reg = /CSS\d/
alert( str.match(reg) ); // CSS4
```
-Можно указать и несколько классов в одном регэкспе:
+И много классов подряд:
```js
//+ run
@@ -69,12 +72,47 @@ alert( "Я люблю HTML5!".match(/\s\w\w\w\w\d/) ); // 'HTML5'
Совпадение (каждому классу в регэкспе соответствует один символ результата):
-
+
+
+## Граница слова \b
+
+Граница слова \b -- это особый класс.
+
+Он интересен тем, что обозначает не символ, а границу между символами.
+
+Например, \bJava\b найдёт слово Java в строке Hello, Java!, но не в строке Hello, Javascript!.
+
+
+```js
+//+ run
+
+alert( "Hello, Java!".match(/\bJava\b/) ); // Java
+alert( "Hello, Javascript!".match(/\bJava\b/) ); // null
+```
+
+Граница имеет "нулевую ширину" в том смысле, что обычно символам регулярного выражения соответствуют символы строки, но не в этом случае.
+
+Граница -- это проверка.
+
+При поиске движок регулярных выражений идёт по шаблону и одновременно по строке, пытаясь построить соответствие. Когда он видит \b, то проверяет, что текущая позиция в строке подходит под одно из условий:
+
+
Начало текста, если первый символ `\w`.
+
Конец текста, если последний символ `\w`.
+
Внутри текста, если с одной стороны `\w`, а с другой -- не `\w`.
+
+
+Например, в строке Hello, Java! под `\b` подходят следующие позиции:
+
+
+
+Как правило, `\b` используется, чтобы искать отдельно стоящее слово. Не на русском конечно, хотя подобную проверку, как мы увидим далее, можно легко сделать для любого языка. А вот на английском, как в примере выше или для чисел, которые являются частным случаем `\w` -- легко.
+
+Например, регэксп \b\d\d\b ищет отдельно двузначные числа. Иными словами, он требует, чтобы до и после \d\d был символ, отличный от `\w` (или начало/конец текста).
## Обратные классы
-Для каждого символьного класса существует "обратный ему", представленный такой же, но заглавной буквой.
+Для каждого класса существует "обратный ему", представленный такой же, но заглавной буквой.
"Обратный" -- означает, что ему соответствуют все остальные символы, например:
@@ -85,11 +123,15 @@ alert( "Я люблю HTML5!".match(/\s\w\w\w\w\d/) ); // 'HTML5'
Не-пробел, то есть любой символ кроме `\s`, например буква.
`\W`
Любой символ, кроме `\w`, то есть не латинница, не подчёркивание, не цифра. В частности, русские буквы принадлежат этому классу.
+
`\B`
+
Проверка, обратная `\b`.
В начале этой главы мы видели, как получить из телефона +7(903)-123-45-67 все цифры.
-Первый способ -- найти все цифры через `match(/\d/g)`, но есть и альтернативный -- найти все НЕцифры и удалить их из строки:
+Первый способ -- найти все цифры через `match(/\d/g)`.
+
+Обратные классы помогут реализовать альтернативный -- найти все НЕцифры и удалить их из строки:
```js
//+ run
@@ -98,19 +140,15 @@ var str = "+7(903)-123-45-67";
alert( str.replace(/\D/g, "") ); // 79031234567
```
-## Спецсимволы
-
-Регулярное выражение может также содержать стандартные спецсимволы строк, такие как перевод строки `\n`, табуляцию `\t` и другие.
-
-Отличить их от классов очень просто -- для классов зарезервированы другие буквы. Так что никакого конфликта здесь нет.
+## Пробелы -- обычные символы
-## Пробелы
+Заметим, что в регулярных выражениях пробел - такой же символ, как и другие.
Обычно мы не обращаем внимание на пробелы. Для нашего взгляда строки 1-5 и 1 - 5 почти идентичны.
-Но в регулярных выражениях пробел - такой же символ, как и другие.
+Однако, если регэксп не учитывает пробелов, то он не сработает.
-Поиск ниже не сработает, так как не учитывает пробелы вокруг дефиса:
+Попытаемся найти цифры, разделённые дефисом:
```js
//+ run
@@ -124,14 +162,16 @@ alert( "1 - 5".match(/\d-\d/) ); // null, нет совпадений!
alert( "1 - 5".match(/\d - \d/) ); // работает, пробелы вокруг дефиса
```
-В регулярные выражения также не надо вставлять лишние пробелы. Все символы имеют значение:
+Конечно же, пробелы в регэкспе нужны лишь тогда, когда мы их ищем. Лишние пробелы (как и любые лишние символы) могут навредить:
```js
//+ run
alert( "1-5".match(/\d - \d/) ); // null, так как в строке 1-5 нет пробелов
```
-## Класс точка
+Короче говоря, в регулярном выражении все символы имеют значение. Даже (и тем более) -- пробелы.
+
+## Точка -- любой символ
Особым классом символов является точка `"."`.
@@ -208,6 +248,7 @@ alert( "/".match(/\//) ); // '/'
alert( "1\2".match(/\\/) ); // '\'
```
+
## Итого
Мы рассмотрели классы для поиска типов символов:
@@ -221,9 +262,10 @@ alert( "1\2".match(/\\/) ); // '\'
`'.'` -- точка обозначает любой символ, кроме перевода строки.
-Кроме того, в регэкспах допустимы и обычные спец-символы строк, например `\n`.
+Если хочется поискать именно сочетание `"\d"` или символ "точка", то его экранируют обратным слэшем, вот так: \.
+
+Заметим, что регулярное выражение может также содержать перевод строки `\n`, табуляцию `\t` и прочие спецсимволы для строк. Конфликта с классами не происходит, так как для них зарезервированы другие буквы.
-Если хочется поискать именно точку или какой-то другой "особый" символ, то его экранируют: \.
diff --git a/11-regular-expressions-javascript/3-regexp-character-classes/hello-java-boundaries.svg b/11-regular-expressions-javascript/3-regexp-character-classes/hello-java-boundaries.svg
new file mode 100644
index 0000000000..e57cf5346a
--- /dev/null
+++ b/11-regular-expressions-javascript/3-regexp-character-classes/hello-java-boundaries.svg
@@ -0,0 +1,19 @@
+
+
\ No newline at end of file
diff --git a/11-regular-expressions-javascript/3-regexp-character-classes/love-html5-classes.svg b/11-regular-expressions-javascript/3-regexp-character-classes/love-html5-classes.svg
new file mode 100644
index 0000000000..2ece2b8982
--- /dev/null
+++ b/11-regular-expressions-javascript/3-regexp-character-classes/love-html5-classes.svg
@@ -0,0 +1,19 @@
+
+
\ No newline at end of file
diff --git a/11-regular-expressions-javascript/3-regexp-character-classes/love_html5.png b/11-regular-expressions-javascript/3-regexp-character-classes/love_html5.png
deleted file mode 100644
index 8e6a49460c..0000000000
Binary files a/11-regular-expressions-javascript/3-regexp-character-classes/love_html5.png and /dev/null differ
diff --git a/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_greedy1.svg b/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_greedy1.svg
index 28a192103e..b8b40343ad 100644
--- a/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_greedy1.svg
+++ b/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_greedy1.svg
@@ -11,8 +11,8 @@
-
-
+
+
\ No newline at end of file
diff --git a/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_greedy2.svg b/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_greedy2.svg
index d88a073a75..edeb4bdab0 100644
--- a/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_greedy2.svg
+++ b/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_greedy2.svg
@@ -11,8 +11,8 @@
-
-
+
+
diff --git a/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_greedy3.svg b/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_greedy3.svg
index 8a75fffb7e..421fc1c112 100644
--- a/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_greedy3.svg
+++ b/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_greedy3.svg
@@ -13,8 +13,8 @@
-
-
+
+
\ No newline at end of file
diff --git a/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_greedy4.svg b/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_greedy4.svg
index a007df6b5f..d2ec4eff5a 100644
--- a/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_greedy4.svg
+++ b/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_greedy4.svg
@@ -14,8 +14,8 @@
-
-
+
+
diff --git a/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_greedy5.svg b/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_greedy5.svg
index fceb75c415..c9459b0e06 100644
--- a/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_greedy5.svg
+++ b/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_greedy5.svg
@@ -14,8 +14,8 @@
-
-
+
+
diff --git a/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_greedy6.svg b/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_greedy6.svg
index 7a2db4c821..e64184b71f 100644
--- a/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_greedy6.svg
+++ b/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_greedy6.svg
@@ -11,8 +11,8 @@
-
-
+
+
diff --git a/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_lazy3.svg b/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_lazy3.svg
index afb45e9e54..1e21a1055e 100644
--- a/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_lazy3.svg
+++ b/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_lazy3.svg
@@ -13,8 +13,8 @@
-
-
+
+
\ No newline at end of file
diff --git a/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_lazy4.svg b/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_lazy4.svg
index 7913aed0ae..54baf2acfc 100644
--- a/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_lazy4.svg
+++ b/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_lazy4.svg
@@ -13,8 +13,8 @@
-
-
+
+
\ No newline at end of file
diff --git a/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_lazy5.svg b/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_lazy5.svg
index 4775caa391..3ae7b904f7 100644
--- a/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_lazy5.svg
+++ b/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_lazy5.svg
@@ -11,8 +11,8 @@
-
-
+
+
\ No newline at end of file
diff --git a/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_lazy6.svg b/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_lazy6.svg
index 7688008447..985879cfde 100644
--- a/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_lazy6.svg
+++ b/11-regular-expressions-javascript/8-regexp-greedy-and-lazy/witch_lazy6.svg
@@ -12,10 +12,10 @@
-
-
-
-
+
+
+
+
\ No newline at end of file
diff --git a/2-ui/1-document/1-browser-environment/windowObjects.svg b/2-ui/1-document/1-browser-environment/windowObjects.svg
index 7e6a88b82b..5c3e9f3996 100644
--- a/2-ui/1-document/1-browser-environment/windowObjects.svg
+++ b/2-ui/1-document/1-browser-environment/windowObjects.svg
@@ -1,8 +1,8 @@
\ No newline at end of file
diff --git a/2-ui/1-document/17-coordinates/coords.svg b/2-ui/1-document/17-coordinates/coords.svg
index f91fe8006b..98134e4e66 100644
--- a/2-ui/1-document/17-coordinates/coords.svg
+++ b/2-ui/1-document/17-coordinates/coords.svg
@@ -13,7 +13,7 @@
-
+ <DIV>
@@ -33,18 +33,18 @@
right
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/2-ui/1-document/4-traversing-dom/dom-links-elements.svg b/2-ui/1-document/4-traversing-dom/dom-links-elements.svg
index 7fc062feb7..86d91b29f9 100644
--- a/2-ui/1-document/4-traversing-dom/dom-links-elements.svg
+++ b/2-ui/1-document/4-traversing-dom/dom-links-elements.svg
@@ -6,11 +6,11 @@
-
+ document.documentElement <HTML>
-
+ document.body (если внутри body)
@@ -22,21 +22,21 @@
parentElement
-
+ <DIV>
-
-
-
-
+
+
+
+ nextElementSibling
-
-
+
+ previousElement
diff --git a/2-ui/1-document/4-traversing-dom/dom-links.svg b/2-ui/1-document/4-traversing-dom/dom-links.svg
index 2a5be39f72..db613cc9f7 100644
--- a/2-ui/1-document/4-traversing-dom/dom-links.svg
+++ b/2-ui/1-document/4-traversing-dom/dom-links.svg
@@ -6,9 +6,9 @@
-
-
-
+
+
+ document
@@ -27,19 +27,19 @@
parentNode
-
+ <DIV>
-
-
-
-
+
+
+
+ nextSibling
-
-
+
+ previousSibling
diff --git a/2-ui/2-events-and-interfaces/1-introduction-browser-events/6-carousel/carousel1.svg b/2-ui/2-events-and-interfaces/1-introduction-browser-events/6-carousel/carousel1.svg
index 0d78f79c57..9609b0b442 100644
--- a/2-ui/2-events-and-interfaces/1-introduction-browser-events/6-carousel/carousel1.svg
+++ b/2-ui/2-events-and-interfaces/1-introduction-browser-events/6-carousel/carousel1.svg
@@ -1,8 +1,8 @@
-
-
+
+ Основной HTTP-запросOrigin
diff --git a/5-animation/1-bezier/demo.svg b/5-animation/1-bezier/demo.svg
index 7dd51ad6cd..4bf499d676 100644
--- a/5-animation/1-bezier/demo.svg
+++ b/5-animation/1-bezier/demo.svg
@@ -1 +1 @@
-
1t:1
\ No newline at end of file
+
1t:1
\ No newline at end of file
diff --git a/6-optimize/1-memory-leaks/leak-xhr-2.svg b/6-optimize/1-memory-leaks/leak-xhr-2.svg
index 7c51e86c96..e6faf68caa 100644
--- a/6-optimize/1-memory-leaks/leak-xhr-2.svg
+++ b/6-optimize/1-memory-leaks/leak-xhr-2.svg
@@ -1,8 +1,8 @@
-
+
leak-xhr-2.svg
- Created with Sketch.
+ Created with bin/sketchtool.
@@ -20,10 +20,10 @@
-
-
-
-
+
+
+
+ onreadystatechange
diff --git a/6-optimize/1-memory-leaks/leak-xhr.svg b/6-optimize/1-memory-leaks/leak-xhr.svg
index a12534814d..967a4b3cdc 100644
--- a/6-optimize/1-memory-leaks/leak-xhr.svg
+++ b/6-optimize/1-memory-leaks/leak-xhr.svg
@@ -1,8 +1,8 @@
-
+
leak-xhr.svg
- Created with Sketch.
+ Created with bin/sketchtool.
@@ -18,12 +18,12 @@
LexicalEnvironment
-
-
-
-
-
-
+
+
+
+
+
+
@@ -32,8 +32,8 @@
onreadystatechange
-
- internal reference
+
+ внутренняя ссылка[[Scope]]
diff --git a/changes.sketch b/changes.sketch
index c63fbfaa56..e3e9a5803e 100644
Binary files a/changes.sketch and b/changes.sketch differ
diff --git a/figures.sketch b/figures.sketch
index b4f1450d68..7331f9dc5f 100644
Binary files a/figures.sketch and b/figures.sketch differ