2019 рд╕рдорд╛рдкреНрдд рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдЯреАрдо рдЗрд╕ рд╡рд░реНрд╖ рдХреА рдЙрдкрд▓рдмреНрдзрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦ рд░рд╣реА рд╣реИред 2019 рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рд╣рдордиреЗ рдЬрд╛рд╡рд╛ рд╕рдорд░реНрдерди рдХреЛ рдЬреЛрдбрд╝рдХрд░ рд╣рдорд╛рд░реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреА рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдмрдврд╝рд╛рдпрд╛, рдЬрд┐рд╕рдиреЗ рд╣рдореЗрдВ рдЬрд╛рд╡рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рднреА рдЬрд╛рдВрдЪ рдФрд░ рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рдпрд╛ред рд╣рдореЗрдВ рдЗрд╕ рд╡рд░реНрд╖ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдмрдЧ рдорд┐рд▓реЗ рд╣реИрдВ, рдФрд░ рдпрд╣рд╛рдБ рдЬрд╛рд╡рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рд╣рдорд╛рд░реЗ рд╢реАрд░реНрд╖ 10 рдХреАрдбрд╝реЗ рдкрд╛рдП рдЧрдП рд╣реИрдВред
рдирд╣реАрдВред 10: рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдмрд╛рдЗрдЯ
рд╕реНрд░реЛрдд:
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕реНрдЯреЗрдЯрд┐рдХ рдХреЛрдб рдПрдирд╛рд▓рд╛рдЗрдЬрд░ рджреНрд╡рд╛рд░рд╛ рдЕрдкрд╛рдЪреЗ рдбрдмреНрдмреВ рдЖрд░рдкреАрд╕реА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгV6007 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'endKey [i] <0xff' рд╣рдореЗрд╢рд╛ рд╕рдЪ рд╣реЛрддреА рд╣реИред OptionUtil.java (32)
public static final ByteSequence prefixEndOf(ByteSequence prefix) { byte[] endKey = prefix.getBytes().clone(); for (int i = endKey.length - 1; i >= 0; i--) { if (endKey[i] < 0xff) {
рдХрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐
рдмрд╛рдЗрдЯ рдкреНрд░рдХрд╛рд░ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╣реИред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдорд╛рдорд▓рд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ C # рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╣реИред рд▓реЗрдХрд┐рди рдЬрд╛рд╡рд╛ рдореЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред
EndKey [i] <0xff рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЯрд╛рдЗрдк
рдмрд╛рдЗрдЯ рдХреЗ рдПрдХ рдЪрд░ рдХреА рддреБрд▓рдирд╛ рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдИ рдЧрдИ 255 (0xff) рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИред рдбреЗрд╡рд▓рдкрд░ рд╢рд╛рдпрдж рдпрд╣ рднреВрд▓ рдЧрдпрд╛ рдХрд┐ рдЬрд╛рд╡рд╛
рдмрд╛рдЗрдЯ рдкреНрд░рдХрд╛рд░ рдХреА рд╕реАрдорд╛ [-128, 127] рд╣реИред рдпрд╣ рд╕реНрдерд┐рддрд┐ рд╣рдореЗрд╢рд╛ рд╕рддреНрдп рд╣реЛрдЧреА, рдФрд░ рд▓реВрдк рдХреЗ
рд▓рд┐рдП рд╣рдореЗрд╢рд╛
рдПрдВрдбрдХреЗ рд╕рд░рдгреА рдХреЗ рдЕрдВрддрд┐рдо рддрддреНрд╡ рдХрд╛ рд╣реА рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╣реЛрдЧрд╛ред
рдирд╣реАрдВред 9: рджреЛ рдореЗрдВ рдПрдХ
рд╕реНрд░реЛрдд:
рдЬрд╛рд╡рд╛ рдХреЗ рд▓рд┐рдП рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕рдбрд╝рдХ рдХреЛ рд╣рд┐рдЯ рдХрд░рддрд╛ рд╣реИред рдЕрдЧрд▓рд╛ рдкрдбрд╝рд╛рд╡ рд╣реИ рдПрд▓реАрдЯреЗрд╕рд░реНрдЪV6007 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ '(int) x <0' рд╣рдореЗрд╢рд╛ рдЧрд▓рдд рд╣реИред BCrypt.java (429)
V6025 рд╕рдВрднрд╡рддрдГ рд╕реВрдЪрдХрд╛рдВрдХ '(int) x' рд╕реАрдорд╛ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИред BCrypt.java (431)
private static byte char64(char x) { if ((int)x < 0 || (int)x > index_64.length) return -1; return index_64[(int)x]; }
рдбрд┐рд╕реНрдХрд╛рдЙрдВрдЯ! рдПрдХ рд╡рд┐рдзрд┐ - рджреЛ рдХреАрдбрд╝реЗ! рдкрд╣рд▓реЗ
рдЪрд╛рд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рд╣реЛрдЧрд╛: рдЪреВрдВрдХрд┐ рдпрд╣ рдЬрд╛рд╡рд╛ рдореЗрдВ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП
(int) x <0 рд╕реНрдерд┐рддрд┐ рд╣рдореЗрд╢рд╛ рдЭреВрдареА рд╣реЛрдЧреАред рджреВрд╕рд░реА рдмрдЧ
рдЗрдВрдбреЗрдХреНрд╕_64 рд╕рд░рдгреА рдХреА рд╕реАрдорд╛ рд╕реЗ рдкрд░реЗ рд╕рд╛рдзрд╛рд░рдг рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рд╣реИ рдЬрдм
(int) x == index_64.length ред рдпрд╣ рд╕реНрдерд┐рддрд┐
(int) x> index_64.length рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИред рдмрдЧ рдХреЛ '>' рдСрдкрд░реЗрдЯрд░ рдХреЛ '> =' рдореЗрдВ рдмрджрд▓рдХрд░ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
(int) x> = index_64.length ред
рдирд╣реАрдВред 8: рдПрдХ рд╕рдорд╛рдзрд╛рди рдФрд░ рдЗрд╕рдХреЗ рдирд┐рд╣рд┐рддрд╛рд░реНрде
рд╕реНрд░реЛрдд:
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд╕рд╛рде рд╕реАрдпреВрдмреАрдП рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдо рдХреЗ рдХреЛрдб рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгV6007 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 'рдкрд┐рдЫрд▓реЗ
MenuItemFlatIndex > = 0' рд╣рдореЗрд╢рд╛ рд╕рдЪ рд╣реЛрддрд╛ рд╣реИред рдХреНрдпреВрдмрд╛рд╕рд╛рдЗрдбрдореЗрдиреНрдпреВрд╡рд┐рдЬреЗрдЯ.рдЬрд╛рд╡рд╛ (328)
protected MenuItemWidget findNextMenuItem(MenuItemWidget currentItem) { List<MenuTreeNode> menuTree = buildVisibleTree(this); List<MenuItemWidget> menuItemWidgets = menuTreeToList(menuTree); int menuItemFlatIndex = menuItemWidgets.indexOf(currentItem); int previousMenuItemFlatIndex = menuItemFlatIndex + 1; if (previousMenuItemFlatIndex >= 0) {
FindNextMenuItem рд╡рд┐рдзрд┐ рдХреЗ рд▓реЗрдЦрдХ рдЬрдм
menuItemWidgets рд╕реВрдЪреА рдореЗрдВ
currentItem рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ
indexOf рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЧрдП рдорд╛рди -1 рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░
indexOf (
menuItemFlatIndex рд╡реИрд░рд┐рдПрдмрд▓) рдХреЗ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ 1 рдЬреЛрдбрд╝ рд░рд╣рд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдореА рдорд╛рди рдХреЛ рд╡реЗрд░рд┐рдПрдмрд▓
рдкрд┐рдЫрд▓реЗ MenuItemFlatIndex рдкрд░ рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реИ, рдЬреЛ рддрдм рд╡рд┐рдзрд┐ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред -1 рдХрд╛ рдЬреЛрдбрд╝рдирд╛ рдПрдХ рдЦрд░рд╛рдм рд╕рдорд╛рдзрд╛рди рд╕рд╛рдмрд┐рдд рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рдХрдИ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЬрдиреНрдо рджреЗрддрд╛ рд╣реИ:
- рд░рд┐рдЯрд░реНрди рдирд▓ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЛ рдХрднреА рднреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдкрд┐рдЫрд▓реЗрдореЗрдиреБ рдЗрдЯреЗрдордлреНрд▓реИрдЯрдЗрдВрдбреЗрдХреНрд╕> = 0 рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣рдореЗрд╢рд╛ рд╕рдЪ рд╣реЛрдЧреА; рдЗрд╕рд▓рд┐рдП, ifNextMenuItem рд╡рд┐рдзрд┐ рд╣рдореЗрд╢рд╛ if рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ рднреАрддрд░ рд╕реЗ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреА;
- рдПрдХ indexOutOfBoundsException рддрдм рдЙрдард╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рдореЗрдиреВрдЗрдЯреЗрдорд╡рд┐рдбреЗрдЯреНрд╕ рд╕реВрдЪреА рдЦрд╛рд▓реА рд╣реЛ рдЧрдИ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЦрд╛рд▓реА рд╕реВрдЪреА рдХреЗ рдкрд╣рд▓реЗ рддрддреНрд╡ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛;
- рдПрдХ indexOutOfBoundsException рдЪрд╛рд▓реВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрдм currentItem рддрд░реНрдХ рдореЗрдиреВ рдХреЗ рдЕрдВрддрд┐рдо рддрддреНрд╡ рдмрди рдЧрдпрд╛ рд╣реИ редWemgetget рд╕реВрдЪреАред
рдирд╣реАрдВред 7: рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рд╕реЗ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдирд╛
рд╕реНрд░реЛрдд:
рд╣реБрдЖрд╡реЗрдИ рдХреНрд▓рд╛рдЙрдб: рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдЯреБрдбреЗ рдореЗрдВ рдмрд╛рджрд▓ рдЫрд╛рдП рд░рд╣реЗрдВрдЧреЗV6008 'рдбреЗрдЯрд╛рдЯреЗрдореНрдкрд╛рдЗрд▓' рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдЕрд╢рдХреНрддрддрд╛ред рдХреИрдЪреЗрдордирдЧрд░.рдЬрд╛рд╡рд╛ (91)
@Override public void putToCache(PutRecordsRequest putRecordsRequest) { .... if (dataTmpFile == null || !dataTmpFile.exists()) { try { dataTmpFile.createNewFile();
PutToCache рд╡рд┐рдзрд┐ рд▓рд┐рдЦрддреЗ рд╕рдордп, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдиреЗ
рдбреЗрдЯрд╛ рдореЗрдВ рдПрдХ рдЯрд╛рдЗрдкреЛ рдмрдирд╛рдпрд╛
TTFile == null || рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓
dataTmpFile.createNewFile () рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ? рдЙрдиреНрд╣реЛрдВрдиреЗ рд▓рд┐рдЦрд╛: '==' рдХреЗ рдмрдЬрд╛рдп '=' рдСрдкрд░реЗрдЯрд░ред рдпрд╣ рдЯрд╛рдЗрдкреЛ
createNewFile рдкрджреНрдзрддрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп
NullPointerException рдХреЛ рдлреЗрдВрдХрдиреЗ рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд░реЗрдЧрд╛ред рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рд╣рд╛рд▓рдд рддрдп рдХрд┐рдП рдЧрдП рдЯрд╛рдЗрдкреЛ рдХреЗ рд╕рд╛рде рджрд┐рдЦрддрд╛ рд╣реИ:
if (dataTmpFile != null || !dataTmpFile.exists())
рдЖрдк рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ, "рдареАрдХ рд╣реИ, рдареАрдХ рд╣реИ, рд╣рдо рдЕрдм рдЖрд░рд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред" рдЕрднреА рддрдХ рдирд╣реАрдВ!
рдЕрдм рдЬрдмрдХрд┐ рдПрдХ рдмрдЧ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдПрдХ рдФрд░ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
DataTmpFile.exists () рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдПрдХ
NullPointerException рдХреЛ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ '' рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред '&&' рдХреЗ рд╕рд╛рде рдСрдкрд░реЗрдЯрд░ред рдпрд╣ рд╕рднреА рдлрд╝рд┐рдХреНрд╕реЗрд╕ рдХреЗ рдмрд╛рдж рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рд╣реИ:
if (dataTmpFile != null && !dataTmpFile.exists())
рдирд╣реАрдВред 6: рдПрдХ рдмрд╣реБрдд рд╣реА рдЕрдЬреАрдм рддрд░реНрдХ рддреНрд░реБрдЯрд┐
рд╕реНрд░реЛрдд:
рдЬрд╛рд╡рд╛ рдХреЗ рд▓рд┐рдП рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛV6007 [CWE-570] рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ '"0"ред рдЕрд╕рдорд╛рди (рдкрд╛рда)' рд╣рдореЗрд╢рд╛ рдЧрд▓рдд рд╣реИред ConvertIntegerToDecimalPredicate.java 46
public boolean satisfiedBy(@NotNull PsiElement element) { .... @NonNls final String text = expression.getText().replaceAll("_", ""); if (text == null || text.length() < 2) { return false; } if ("0".equals(text) || "0L".equals(text) || "0l".equals(text)) {
рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдПрдХ рд╕реНрдкрд╖реНрдЯ рддрд░реНрдХ рддреНрд░реБрдЯрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрджрд┐
рд╕рдВрддреЛрд╖рдЬрдирдХ рд╡рд┐рдзрд┐ рдкрд╣рд▓реЗ рдХрдерди рдХреЗ рдмрд╛рдж рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдЖрддреА рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реЛрдЧрд╛ рдХрд┐
рдкрд╛рда рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрдо рд╕реЗ рдХрдо рджреЛ рд╡рд░реНрдг рд▓рдВрдмрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЕрд░реНрде рдпрд╣ рднреА рд╣реИ рдХрд┐
рдпрджрд┐ рдХрдерди рдирд┐рд░рд░реНрдердХ рд╣реИ,
рддреЛ рдкрд╣рд▓реЗ
0 "ред" (ред рдкрд╛рда) рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ рдпрд╣ рдПрдХ рд░рд╣рд╕реНрдп рдмрдирд╛ рд╣реБрдЖ рд╣реИред
рдирд╣реАрдВред 5: рдХреНрдпрд╛ рдПрдХ рдореЛрдбрд╝!
рд╕реНрд░реЛрдд:
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдиреЗ рдЕрдкрд╛рдЪреЗ рд╣рд╛рдЗрд╡ рдХрд╛ рджреМрд░рд╛ рдХрд┐рдпрд╛V6034 'рдмрд┐рдЯрд╢ рд╢рд┐рдлреНрдЯрдЗрдиреНрд╡рд╛рдпрд░ - 1' рдХреЗ рдорд╛рди рд╕реЗ рд╢рд┐рдлреНрдЯ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рдЕрд╕рдВрдЧрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: 'рдмрд┐рдЯрд╢ рд╢рд┐рдлреНрдЯреНрд╕рд╡рд░реНрд▓реНрдб - 1' = [-1 ... 30]ред рдЕрдирд╕рд╛рдЗрдиреНрдЯрдЗрдВрдЯреЗрдВрдЯ реирежрежs.рдЬрд╛рд╡рд╛ (резigned реп рез)
private void shiftRightDestructive(int wordShifts, int bitShiftsInWord, boolean roundUp) { if (wordShifts == 0 && bitShiftsInWord == 0) { return; } assert (wordShifts >= 0); assert (bitShiftsInWord >= 0); assert (bitShiftsInWord < 32); if (wordShifts >= 4) { zeroClear(); return; } final int shiftRestore = 32 - bitShiftsInWord;
рдЗрдирдкреБрдЯ рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде
рд╢рдмреНрджрд╢рдГ = 3 рдФрд░
рдмрд┐рдЯрд╢рд┐рдлреНрдЯрдЗрд╡реЙрд░реНрдб = 0 ,
рд░рд╛рдЙрдВрдбрдХрд╛рд░реНрд░реАрдорд╛рд╕реНрдХ рдЪрд░, рдЬреЛ
рдмрд┐рдЯрд╡рд╛рдЗрдб рд╢рд┐рдлреНрдЯ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ
(1 << (bitShiftsInWord - 1)) , рдПрдХ рдЛрдгрд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛ рдмрди рдЬрд╛рдПрдЧреАред рдбреЗрд╡рд▓рдкрд░ рдХреЛ рд╢рд╛рдпрдж рдпрд╣ рдЙрдореНрдореАрдж рдирд╣реАрдВ рдереАред
рдирд╣реАрдВред 4: рдХреНрдпрд╛ рд╣рдо рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ?
рд╕реНрд░реЛрдд:
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдиреЗ рдЕрдкрд╛рдЪреЗ рд╣рд╛рдЗрд╡ рдХрд╛ рджреМрд░рд╛ рдХрд┐рдпрд╛V6051 'рдЕрдВрдд' рдмреНрд▓реЙрдХ рдореЗрдВ 'рд░рд┐рдЯрд░реНрди' рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ
рдЕрдирдЪрд╛рд╣реЗ рдЕрдкрд╡рд╛рджреЛрдВ рдХрд╛ рдиреБрдХрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред ObjectStore.java (9080)
private List<MPartitionColumnStatistics> getMPartitionColumnStatistics(....) throws NoSuchObjectException, MetaException { boolean committed = false; try { .... committed = commitTransaction(); return result; } catch (Exception ex) { LOG.error("Error retrieving statistics via jdo", ex); if (ex instanceof MetaException) { throw (MetaException) ex; } throw new MetaException(ex.getMessage()); } finally { if (!committed) { rollbackTransaction(); return Lists.newArrayList(); } } }
GetMPartitionColumnStatistics рдкрджреНрдзрддрд┐ рдХреА рдШреЛрд╖рдгрд╛ рднреНрд░рд╛рдордХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рд╕рдХрддрд╛ рд╣реИред рд╣рдХреАрдХрдд рдореЗрдВ,
рдХреЛрд╢рд┐рд╢ рдмреНрд▓реЙрдХ рдореЗрдВ рдЬреЛ рднреА рдЕрдкрд╡рд╛рдж рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ,
рдкреНрд░рддрд┐рдмрджреНрдз рдЪрд░ рд╣рдореЗрд╢рд╛
рдЧрд▓рдд рд╣реЛрдЧрд╛ , рдЗрд╕рд▓рд┐рдП
рдЕрдВрдд рдореЗрдВ рдмреНрд▓реЙрдХ рдореЗрдВ
рд╡рд╛рдкрд╕реА рд╡рд┐рд╡рд░рдг рдПрдХ рдорд╛рди рд▓реМрдЯрд╛рдПрдЧрд╛, рдЬрдмрдХрд┐ рд╕рднреА рдлреЗрдВрдХреЗ рдЧрдП рдЕрдкрд╡рд╛рдж рдЦреЛ рдЬрд╛рдПрдВрдЧреЗ, рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рд╣рд░ рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛрдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдеред рддреЛ, рдЗрд╕ рдкрджреНрдзрддрд┐ рдореЗрдВ рдлреЗрдВрдХреЗ рдЧрдП рдЕрдкрд╡рд╛рджреЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЗрд╕реЗ рдЫреЛрдбрд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рдирд╣реАрдВред 3: Hocus-pocus, рдпрд╛ рдПрдХ рдирдпрд╛ рдореБрдЦреМрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ
рд╕реНрд░реЛрдд:
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдиреЗ рдЕрдкрд╛рдЪреЗ рд╣рд╛рдЗрд╡ рдХрд╛ рджреМрд░рд╛ рдХрд┐рдпрд╛V6034 рд╢рд┐рдлреНрдЯ 'рдЬреЗ' рдХреЗ рдорд╛рди рд╕реЗ рдЖрдХрд╛рд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрд╕рдВрдЧрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: 'рдЬреЗ' = [0 ... 63]ред IoTrace.java (272)
public void logSargResult(int stripeIx, boolean[] rgsToRead) { .... for (int i = 0, valOffset = 0; i < elements; ++i, valOffset += 64) { long val = 0; for (int j = 0; j < 64; ++j) { int ix = valOffset + j; if (rgsToRead.length == ix) break; if (!rgsToRead[ix]) continue; val = val | (1 << j);
рдЗрд╕ рдмрдЧ рдХреЛ рднреА рдПрдХ рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рд╢рд┐рдлреНрдЯ рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрддрдирд╛ рд╣реА рдирд╣реАрдВред
J рд╡реИрд░рд┐рдПрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓реВрдк рдХреЗ
рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ рдореЗрдВ рд╕реАрдорд╛ [0 ... 63] рдкрд░ рдПрдХ рдХрд╛рдЙрдВрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдХрд╛рдЙрдВрдЯрд░ рдПрдХ рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рд╢рд┐рдлреНрдЯ
1 << j рдореЗрдВ рднрд╛рдЧ рд▓реЗрддрд╛ рд╣реИред рд╕рдм рдХреБрдЫ рдареАрдХ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ рдкрд░ рдкреВрд░реНрдгрд╛рдВрдХ рд╢рд╛рдмреНрджрд┐рдХ '1' рдкреНрд░рдХрд╛рд░ рдХрд╛
рдЗрдВрдЯ (рдПрдХ 32-рдмрд┐рдЯ рдорд╛рди) рдЦреЗрд▓рдиреЗ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдЗрд╕рдХреА рд╡рдЬрд╣ рд╕реЗ, рдмрд┐рдЯ рд╡рд╛рдЗрдЯ рд╢рд┐рдлреНрдЯ рдореЗрдВ
рдЬреЗ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреА рд╡реИрд▓реНрдпреВ 31 рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рдЬрд╛рдиреЗ рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд▓реМрдЯрд╛рдП рдЧрдП рдорд╛рдиреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛ред рдпрджрд┐ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рдорд╛рди 1 рдХреЛ
рд▓рдВрдмреЗ рд╕рдордп рддрдХ рджрд░реНрд╢рд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
1L << j рдпрд╛
(рд▓рдВрдмрд╛) 1 << j ред
рдирд╣реАрдВред 2: рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЖрджреЗрд╢
рд╕реНрд░реЛрдд:
рд╣реБрдЖрд╡реЗрдИ рдХреНрд▓рд╛рдЙрдб: рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдЯреБрдбреЗ рдореЗрдВ рдмрд╛рджрд▓ рдЫрд╛рдП рд░рд╣реЗрдВрдЧреЗV6050 рдХреНрд▓рд╛рд╕ рдЖрд░рдВрднреАрдХрд░рдг рдЪрдХреНрд░ рдореМрдЬреВрдж рд╣реИред 'рд▓реЙрдЧ' рдХреЗ рдЖрд░рдВрднреАрдХрд░рдг рд╕реЗ рдкрд╣рд▓реЗ 'INSTANCE' рдХрд╛ рдкреНрд░рд╛рд░рдВрдн рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рдЕрдирдЯреНрд░рд╕реНрдЯреЗрдбрдПрд╕рдПрд╕рдПрд▓.рдЬрд╛рд╡рд╛ (32), рдЕрдирдЯреНрд░рд╕реНрдЯрд┐рдПрд╕рдПрд╕рдПрд▓.рдЬрд╡рд╛ (59), рдЕрдирдЯреНрд░рд┐рд╕реНрд╡рд░реНрдбрдПрд╕рдПрд╕рдПрд▓.рдЬрд╛рд╡рд╛ (33)
public class UntrustedSSL { private static final UntrustedSSL INSTANCE = new UntrustedSSL(); private static final Logger LOG = LoggerFactory.getLogger(UntrustedSSL.class); .... private UntrustedSSL() { try { .... } catch (Throwable t) { LOG.error(t.getMessage(), t);
рдЬрд┐рд╕ рдХреНрд░рдо рдореЗрдВ рдХрд┐рд╕реА рд╡рд░реНрдЧ рдореЗрдВ рдлрд╝реАрд▓реНрдб рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЙрдирдореЗрдВ рдлрд░реНрдХ рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЙрд╕реА рдХреНрд░рдо рдореЗрдВ рдЖрд░рдореНрдн рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕ рдХреНрд░рдо рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рддрдереНрдп рдХреЛ рднреВрд▓ рдЬрд╛рдиреЗ рд╕реЗ рдКрдкрд░ рдХреА рддрд░рд╣ рдорд╛рдпрд╛рд╡реА рдХреАрдбрд╝реЗ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред
рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕реНрдЯреИрдЯрд┐рдХ рдлреАрд▓реНрдб
рд▓реЙрдЧ рдХреЛ рдЙрд╕ рд╕рдордп рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдбрд┐рд░реЗрд▓реНрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЗрд╕реЗ рд╡реИрд▓реНрдпреВ
рдирд▓ рдХреЗ рд▓рд┐рдП рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЕрдкрд╡рд╛рджреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдлреЗрдВрдХрдиреЗ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ
NullPointerException ->
ExceptionInInterizerError ред
рд▓реЗрдХрд┐рди рд╕реНрдереИрддрд┐рдХ рдХреНрд╖реЗрддреНрд░
рд▓реЙрдЧ рдореЗрдВ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд╕рдордп рдореВрд▓реНрдп
рд╢реВрдиреНрдп рдХреНрдпреЛрдВ рд╣реИ?
ExceptionInInitializerError рд╕реБрд░рд╛рдЧ рд╣реИред рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╕реНрдереИрддрд┐рдХ рдлрд╝реАрд▓реНрдб
INSTANCE рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕реЗ
рд▓реЙрдЧ рдлрд╝реАрд▓реНрдб рд╕реЗ рдкрд╣рд▓реЗ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЬрдм рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ
рд▓реЙрдЧ рдлрд╝реАрд▓реНрдб рдХреЛ рдЕрднреА рддрдХ рдЖрд░рдВрдн рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдХреЛрдб рдХреЛ рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЙрд▓ рд╕реЗ рдкрд╣рд▓реЗ
рд▓реЙрдЧ рдлрд╝реАрд▓реНрдб рдХреЛ рдЖрд░рдВрднреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдкрд╣рд▓рд╛: рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ
рд╕реНрд░реЛрдд:
рдЕрдкрд╛рдЪреЗ Hadoop рдХреЛрдб рдЧреБрдгрд╡рддреНрддрд╛: рдЙрддреНрдкрд╛рджрди рд╡реА.рдПрд╕. рдЯреЗрд╕реНрдЯV6072 рджреЛ рд╕рдорд╛рди рдХреЛрдб рдЯреБрдХрдбрд╝реЗ рдкрд╛рдП рдЧрдПред рд╢рд╛рдпрдж, рдпрд╣ рдПрдХ рдЯрд╛рдЗрдкреЛ рд╣реИ рдФрд░ 'рд▓реЛрдХрд▓рдлреЗрдпрд░' рдХреЗ рдмрдЬрд╛рдп 'рд▓реЛрдХрд▓рдлрд╛рдЗрд▓реНрд╕' рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред LocalDistributedCacheManager.java (183), LocalDistributedCacheManager.java (178), LocalDistributedCacheManager.java (176), LocalDistributedCacheManager.java (181)
public synchronized void setup(JobConf conf, JobID jobId) throws IOException { ....
рд╣рдорд╛рд░реА рд╢реАрд░реНрд╖ 10 рд╕реВрдЪреА рдореЗрдВ рдкрд╣рд▓рд╛ рд╕реНрдерд╛рди рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рд╕реЗ рд╕рдореНрдорд╛рдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╛, рдПрдХ рдмрдЧ рдЬреЛ рдЗрд╕ рддрдХрдиреАрдХ рдХреЗ рд▓рд╛рдкрд░рд╡рд╛рд╣ рдЙрдкрдпреЛрдЧ рд╕реЗ рдЙрдкрдЬрд╛ рд╣реИред рджреВрд╕рд░рд╛
рдпрджрд┐ рдХрдерди рдкрд╣рд▓реЗ рдХреА рдПрдХ рдкреНрд░рддрд┐ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХреБрдЫ рдЪрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ:
- localArchives рдХреЛ рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛;
- MRJobConfig.CACHE_LOCALARCHIVES рдХреЛ MRJobConfig.CACHE_LOCALFILES рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ред
рд▓реЗрдХрд┐рди рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЗрд╕ рд╕рд░рд▓ рдСрдкрд░реЗрд╢рди рдореЗрдВ рднреА рдПрдХ рдЧрд▓рддреА рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛:
рдЕрдЧрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рджреНрд╡рд╛рд░рд╛ рдмрддрд╛рдИ рдЧрдИ рд▓рд╛рдЗрди рдореЗрдВ рджрд┐рдП рдЧрдП рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдЕрднреА рднреА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрдЪреНрдЫрд┐рдд
рд▓реЛрдХрд▓рдлрд╛рдЗрд▓реНрд╕ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЗ рдмрдЬрд╛рдп
рд▓реЛрдХрд▓ рдЖрд░реНрдЪ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдирд┐рд╖реНрдХрд░реНрд╖
рдмрд╛рдж рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЪрд░рдгреЛрдВ рдореЗрдВ рдпрд╛ рд░рд┐рд▓реАрдЬ рдХреЗ рдмрд╛рдж рдкрд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреАрдбрд╝реЗ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕реМрджрд╛ рд╣реИред рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдЖрдкрдХреЛ рдХреЛрдбрд┐рдВрдЧ рдЪрд░рдг рдореЗрдВ рдмрдЧ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдпрд╣ рдмрд╣реБрдд рдЖрд╕рд╛рди рдФрд░ рд╕рд╕реНрддрд╛ рд╣реИред рдХрдИ
рдХрдВрдкрдирд┐рдпреЛрдВ рдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирд┐рдпрдорд┐рдд рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛ рджрд┐рдпрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкрдиреА рдиреМрдХрд░реА рдХрд╛ рдЖрдирдВрдж рд▓реЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ
рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
рд╣рдо рдЙрд╕ рдкрд░ рдирд╣реАрдВ рд░реБрдХрдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ рдЯреВрд▓ рдореЗрдВ рд╕реБрдзрд╛рд░ рдФрд░ рд╡реГрджреНрдзрд┐ рдХрд░рддреЗ рд░рд╣рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред рдЕрдЧрд▓реЗ рд╡рд░реНрд╖ рдФрд░ рднреА рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рдмрдЧ рдХреЗ рд╕рд╛рде рдирдП рдирд┐рджрд╛рди рдФрд░ рд▓реЗрдЦреЛрдВ рдХреЗ рд▓рд┐рдП рдмрдиреЗ рд░рд╣реЗрдВред
рдореИрдВ рддреБрдореНрд╣реЗрдВ рд░реЛрдорд╛рдВрдЪ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдБ! рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдиреЗ
2019 рдореЗрдВ C # рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╢реАрд░реНрд╖ 10 рдмрдЧреЛрдВ рдХреЛ рд╣рд░рд╛рдпрд╛ рдФрд░ рдЕрдм рдЖрдкрдиреЗ рдЬрд╛рд╡рд╛ рдХреЗ рд╕рд╛рде рднреА рдореБрдХрд╛рдмрд▓рд╛ рдХрд┐рдпрд╛! рдЕрдЧрд▓реЗ рд╕реНрддрд░ рдкрд░ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ -
2019 рдореЗрдВ C ++ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦред