code: public final int fold(int c, int options) {
          int props=trie.get(c);
          if(!propsHasException(props)) {
              if(getTypeFromProps(props)>=UPPER) {
                  c+=getDelta(props);
              }
          } else {
              int excOffset=getExceptionsOffset(props);
              int excWord=exceptions.charAt(excOffset++);
              int index;
              if((excWord&EXC_CONDITIONAL_FOLD)!=0) {
                  /* special case folding mappings, hardcoded */
                  if((options&FOLD_CASE_OPTIONS_MASK)==UCharacter.FOLD_CASE_DEFAULT) {
                      /* default mappings */
                      if(c==0x49) {
                          /* 0049; C; 0069; # LATIN CAPITAL LETTER I */
                          return 0x69;
                      } else if(c==0x130) {
                          /* no simple case folding for U+0130 */
                          return c;
                      }
                  } else {
                      /* Turkic mappings */
                      if(c==0x49) {
                          /* 0049; T; 0131; # LATIN CAPITAL LETTER I */
                          return 0x131;
                      } else if(c==0x130) {
                          /* 0130; T; 0069; # LATIN CAPITAL LETTER I WITH DOT ABOVE */
                          return 0x69;
                      }
                  }
              }
              if(hasSlot(excWord, EXC_FOLD)) {
                  index=EXC_FOLD;
              } else if(hasSlot(excWord, EXC_LOWER)) {
                  index=EXC_LOWER;
              } else {
                  return c;
              }
              c=getSlotValue(excWord, index, excOffset);
          }
          return c;
      }
docs: /* return the simple case folding mapping for c