in src/main/cpp/sdk/common/rapidjson/pointer.h [1051:1071]
Ch Take() {
if (*src_ != '%' || src_ + 3 > end_) { // %XY triplet
valid_ = false;
return 0;
}
src_++;
Ch c = 0;
for (int j = 0; j < 2; j++) {
c = static_cast<Ch>(c << 4);
Ch h = *src_;
if (h >= '0' && h <= '9') c = static_cast<Ch>(c + h - '0');
else if (h >= 'A' && h <= 'F') c = static_cast<Ch>(c + h - 'A' + 10);
else if (h >= 'a' && h <= 'f') c = static_cast<Ch>(c + h - 'a' + 10);
else {
valid_ = false;
return 0;
}
src_++;
}
return c;
}