// Path: app/src/main/java/jp/sblo/pandora/jota/text/style/LineHeightSpan.java
// public interface LineHeightSpan
// extends ParagraphStyle, WrapTogetherSpan
// {
//     public void chooseHeight(CharSequence text, int start, int end,
//                              int spanstartv, int v,
//                              Paint.FontMetricsInt fm);
// 
//     public interface WithDensity extends LineHeightSpan {
//         public void chooseHeight(CharSequence text, int start, int end,
//                                  int spanstartv, int v,
//                                  Paint.FontMetricsInt fm, TextPaint paint);
//     }
// }


import android.graphics.Bitmap;
import jp.sblo.pandora.jota.text.style.LineHeightSpan;
import android.graphics.Paint;
import android.text.AndroidCharacter;
import android.text.Spanned;
import android.text.TextPaint;
        int want = off + 1 + TOP;
// Jota Text Editor
//        int want2 = j + TOP;
        int[] lines = mLines;

        // Log.e("text", "line " + start + " to " + end + (last ? "===" : ""));

        if (want >= lines.length) {
            int nlen = ArrayUtils.idealIntArraySize(want + 1);
            int[] grow = new int[nlen];
            System.arraycopy(lines, 0, grow, 0, lines.length);
            mLines = grow;
            lines = grow;
        }
		// Jota Text Editor
//        if (want2 >= mLineDirections.length ){
//            int nlen2 = ArrayUtils.idealIntArraySize(want2 + 1);
//            Directions[] grow2 = new Directions[nlen2];
//            System.arraycopy(mLineDirections, 0, grow2, 0,
//                             mLineDirections.length);
//            mLineDirections = grow2;
//        }

        if (chooseht != null) {
            fm.ascent = above;
            fm.descent = below;
            fm.top = top;
            fm.bottom = bottom;

            for (int i = 0; i < chooseht.length; i++) {
// Path: app/src/main/java/jp/sblo/pandora/jota/text/style/LineHeightSpan.java
// public interface LineHeightSpan
// extends ParagraphStyle, WrapTogetherSpan
// {
//     public void chooseHeight(CharSequence text, int start, int end,
//                              int spanstartv, int v,
//                              Paint.FontMetricsInt fm);
// 
//     public interface WithDensity extends LineHeightSpan {
//         public void chooseHeight(CharSequence text, int start, int end,
//                                  int spanstartv, int v,
//                                  Paint.FontMetricsInt fm, TextPaint paint);
//     }
// }


// Path: app/src/main/java/jp/sblo/pandora/jota/text/StaticLayout.java
import android.graphics.Bitmap;
import jp.sblo.pandora.jota.text.style.LineHeightSpan;
import android.graphics.Paint;
import android.text.AndroidCharacter;
import android.text.Spanned;
import android.text.TextPaint;

        int want = off + 1 + TOP;
// Jota Text Editor
//        int want2 = j + TOP;
        int[] lines = mLines;

        // Log.e("text", "line " + start + " to " + end + (last ? "===" : ""));

        if (want >= lines.length) {
            int nlen = ArrayUtils.idealIntArraySize(want + 1);
            int[] grow = new int[nlen];
            System.arraycopy(lines, 0, grow, 0, lines.length);
            mLines = grow;
            lines = grow;
        }
		// Jota Text Editor
//        if (want2 >= mLineDirections.length ){
//            int nlen2 = ArrayUtils.idealIntArraySize(want2 + 1);
//            Directions[] grow2 = new Directions[nlen2];
//            System.arraycopy(mLineDirections, 0, grow2, 0,
//                             mLineDirections.length);
//            mLineDirections = grow2;
//        }

        if (chooseht != null) {
            fm.ascent = above;
            fm.descent = below;
            fm.top = top;
            fm.bottom = bottom;

            for (int i = 0; i < chooseht.length; i++) {
                if (chooseht[i] instanceof LineHeightSpan.WithDensity) {