private void CheckAndRespond(Process process, StreamWriter stdin, CommandLine.StreamData data)
            {
                if (process.HasExited)
                {
                    return;
                }

                // The password prompt text won't have a trailing newline, so read ahead on stdout to locate it.
                var stdoutData = GetBufferedData(0);
                var stdoutText = Aggregate(stdoutData).text;
                var password   = _promptToPasswordDictionary
                                 .Where(kvp => stdoutText.Contains(kvp.Key))
                                 .Select(kvp => kvp.Value)
                                 .FirstOrDefault();

                if (password == null)
                {
                    return;
                }

                Flush();
                // UTF8 to match "--pass-encoding utf-8" argument passed to apksigner.
                foreach (var value in Encoding.UTF8.GetBytes(password + Environment.NewLine))
                {
                    stdin.BaseStream.WriteByte(value);
                }

                stdin.BaseStream.Flush();
            }
            private void CheckAndRespond(Process process, StreamWriter stdin, CommandLine.StreamData data)
            {
                if (process.HasExited)
                {
                    return;
                }

                // The password prompt text won't have a trailing newline, so read ahead on stdout to locate it.
                var stderrData = GetBufferedData(CommandLine.StandardErrorStreamDataHandle);
                var stderrText = Aggregate(stderrData).text;
                var password   = _promptToPasswordDictionary
                                 .Where(kvp => kvp.Key.IsMatch(stderrText))
                                 .Select(kvp => kvp.Value)
                                 .FirstOrDefault();

                if (password == null)
                {
                    return;
                }

                Flush();
                // Use UTF8 to support non ASCII passwords
                var passwordBytes = Encoding.UTF8.GetBytes(password + Environment.NewLine);

                stdin.BaseStream.Write(passwordBytes, 0, passwordBytes.Length);
                stdin.BaseStream.Flush();
            }