/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.common.io.XmlUtil
 *  com.l7tech.common.mime.ContentTypeHeader
 *  com.l7tech.gateway.common.service.PublishedService
 *  com.l7tech.gateway.common.transport.email.EmailListener
 *  com.l7tech.message.Message
 *  com.l7tech.message.MimeKnob
 *  com.l7tech.message.XmlKnob
 *  com.l7tech.objectmodel.EntityType
 *  com.l7tech.objectmodel.Goid
 *  com.l7tech.policy.assertion.AssertionStatus
 *  com.l7tech.util.Config
 *  com.l7tech.util.ExceptionUtils
 *  com.l7tech.util.GoidUpgradeMapper
 *  com.l7tech.util.ResourceUtils
 *  com.l7tech.xml.soap.SoapFaultUtils
 *  com.l7tech.xml.soap.SoapUtil
 *  com.l7tech.xml.soap.SoapVersion
 *  jakarta.mail.Header
 *  jakarta.mail.MessagingException
 *  jakarta.mail.internet.MimeMessage
 *  org.springframework.context.ApplicationContext
 */
package com.l7tech.server.transport.email;

import com.l7tech.common.io.XmlUtil;
import com.l7tech.common.mime.ContentTypeHeader;
import com.l7tech.gateway.common.service.PublishedService;
import com.l7tech.gateway.common.transport.email.EmailListener;
import com.l7tech.message.Message;
import com.l7tech.message.MimeKnob;
import com.l7tech.message.XmlKnob;
import com.l7tech.objectmodel.EntityType;
import com.l7tech.objectmodel.Goid;
import com.l7tech.policy.assertion.AssertionStatus;
import com.l7tech.server.MessageProcessor;
import com.l7tech.server.StashManagerFactory;
import com.l7tech.server.event.FaultProcessed;
import com.l7tech.server.message.PolicyEnforcementContext;
import com.l7tech.server.message.PolicyEnforcementContextFactory;
import com.l7tech.server.policy.PolicyVersionException;
import com.l7tech.server.transport.email.EmailHandler;
import com.l7tech.server.transport.email.EmailListenerConfig;
import com.l7tech.server.transport.email.EmailListenerRuntimeException;
import com.l7tech.server.transport.email.a;
import com.l7tech.server.util.EventChannel;
import com.l7tech.util.Config;
import com.l7tech.util.ExceptionUtils;
import com.l7tech.util.GoidUpgradeMapper;
import com.l7tech.util.ResourceUtils;
import com.l7tech.xml.soap.SoapFaultUtils;
import com.l7tech.xml.soap.SoapUtil;
import com.l7tech.xml.soap.SoapVersion;
import jakarta.mail.Header;
import jakarta.mail.MessagingException;
import jakarta.mail.internet.MimeMessage;
import java.io.ByteArrayInputStream;
import java.io.Closeable;
import java.io.IOException;
import java.util.Collections;
import java.util.HashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.springframework.context.ApplicationContext;
import org.w3c.dom.Node;
import org.xml.sax.SAXException;

public class EmailHandlerImpl
implements EmailHandler {
    private final MessageProcessor a;
    private final StashManagerFactory b;
    private final EventChannel c;
    private final Config d;
    private static final Logger e;
    private static final String[] f;

    public EmailHandlerImpl(ApplicationContext applicationContext) {
        if (applicationContext == null) {
            String[] stringArray = f;
            throw new IllegalArgumentException(stringArray[18]);
        }
        String[] stringArray = f;
        this.a = (MessageProcessor)((Object)applicationContext.getBean(stringArray[20], MessageProcessor.class));
        this.b = (StashManagerFactory)applicationContext.getBean(stringArray[8], StashManagerFactory.class);
        this.c = (EventChannel)applicationContext.getBean(stringArray[6], EventChannel.class);
        this.d = (Config)applicationContext.getBean(stringArray[4], Config.class);
    }

    /*
     * Unable to fully structure code
     */
    @Override
    public void onMessage(EmailListenerConfig var1_1, MimeMessage var2_2) throws EmailListenerRuntimeException {
        block56: {
            var7_3 = AssertionStatus.UNDEFINED;
            var8_4 = false;
            try {
                block52: {
                    block59: {
                        block51: {
                            var11_5 = var2_2.getContentType();
                            var4_6 = var11_5 == null ? ContentTypeHeader.XML_DEFAULT : ContentTypeHeader.create((String)var11_5);
                            var9_7 = var2_2.getSize();
                            var3_12 = var2_2.getInputStream();
                            var12_13 = var1_1.getEmailListener().properties().getProperty(EmailListener.PROP_REQUEST_SIZE_LIMIT);
                            try {
                                v0 = var12_13 == null ? this.d.getLongProperty(EmailHandlerImpl.f[21], Message.getMaxBytes()) : Long.parseLong((String)var12_13);
                            }
                            catch (IOException v1) {
                                throw EmailHandlerImpl.a(v1);
                            }
                            var13_14 = v0;
                            try {
                                if (var13_14 <= 0L || var9_7 <= var13_14) break block51;
                            }
                            catch (IOException v2) {
                                throw EmailHandlerImpl.a(v2);
                            }
                            var8_4 = true;
                        }
                        var15_16 = new HashMap<String, String>();
                        var16_20 = var2_2.getAllHeaders();
                        while (var16_20.hasMoreElements()) {
                            var17_21 = (Header)var16_20.nextElement();
                            var15_16.put(var17_21.getName(), var17_21.getValue());
                        }
                        var5_22 = Collections.unmodifiableMap(var15_16);
                        var16_20 = (String)var15_16.get(SoapUtil.SOAPACTION);
                        if (var16_20 != null) break block59;
                        var19_23 = EmailHandlerImpl.f;
                        var16_20 = var4_6.getParam(var19_23[10]);
                        if (var16_20 == null) break block52;
                        try {
                            block60: {
                                if (!EmailHandlerImpl.e.isLoggable(Level.FINER)) break block52;
                                break block60;
                                catch (IOException v3) {
                                    throw EmailHandlerImpl.a(v3);
                                }
                            }
                            EmailHandlerImpl.e.finer(EmailHandlerImpl.f[15] + (String)var16_20);
                            break block52;
                        }
                        catch (IOException v4) {
                            throw EmailHandlerImpl.a(v4);
                        }
                    }
                    try {
                        if (EmailHandlerImpl.e.isLoggable(Level.FINER)) {
                            EmailHandlerImpl.e.finer(EmailHandlerImpl.f[11] + (String)var16_20);
                        }
                    }
                    catch (IOException v5) {
                        throw EmailHandlerImpl.a(v5);
                    }
                }
                var6_26 = var16_20;
            }
            catch (IOException var9_8) {
                var19_24 = EmailHandlerImpl.f;
                throw new EmailListenerRuntimeException(var19_24[14], var9_8);
            }
            catch (MessagingException var9_9) {
                var19_25 = EmailHandlerImpl.f;
                throw new EmailListenerRuntimeException(var19_25[13], var9_9);
            }
            try {
                block53: {
                    var9_10 = new Goid[]{PublishedService.DEFAULT_GOID};
                    try {
                        var10_27 = var1_1.getEmailListener().properties();
                        var11_5 = var10_27.getProperty(EmailListener.PROP_IS_HARDWIRED_SERVICE);
                        try {
                            if (var11_5 == null || !Boolean.parseBoolean((String)var11_5)) break block53;
                        }
                        catch (IOException v6) {
                            throw EmailHandlerImpl.a(v6);
                        }
                        var11_5 = var10_27.getProperty(EmailListener.PROP_HARDWIRED_SERVICE_ID);
                        var9_10[0] = GoidUpgradeMapper.mapId((EntityType)EntityType.SERVICE, (String)var11_5);
                    }
                    catch (Exception var10_28) {
                        var19_23 = EmailHandlerImpl.f;
                        EmailHandlerImpl.e.log(Level.WARNING, var19_23[16], var10_28);
                    }
                }
                var10_27 = new Message();
                var10_27.initialize(this.b.createStashManager(), var4_6, var3_12, 0L);
                var10_27.attachEmailKnob(new a(this, var5_22, (String)var6_26, var9_10));
                var11_5 = PolicyEnforcementContextFactory.createPolicyEnforcementContext((Message)var10_27, null, false);
                var12_13 = null;
                var13_15 = null;
                try {
                    block58: {
                        block57: {
                            block55: {
                                block61: {
                                    var14_29 = null;
                                    if (var8_4) break block61;
                                    try {
                                        block62: {
                                            block54: {
                                                block64: {
                                                    block63: {
                                                        var7_3 = this.a.processMessage((PolicyEnforcementContext)var11_5);
                                                        var11_5.setPolicyResult(var7_3);
                                                        EmailHandlerImpl.e.finest(EmailHandlerImpl.f[5] + String.valueOf(var7_3));
                                                        if (var11_5.getResponse().getKnob(XmlKnob.class) != null) ** GOTO lbl98
                                                        if (var11_5.getResponse().getKnob(MimeKnob.class) == null) break block62;
                                                        break block63;
                                                        catch (IOException v7) {
                                                            throw EmailHandlerImpl.a(v7);
                                                        }
                                                    }
                                                    if (var7_3 == AssertionStatus.NONE) break block54;
                                                    break block64;
                                                    catch (IOException v8) {
                                                        throw EmailHandlerImpl.a(v8);
                                                    }
                                                }
                                                try {
                                                    block65: {
                                                        if (!var11_5.isStealthResponseMode()) break block54;
                                                        break block65;
                                                        catch (IOException v9) {
                                                            throw EmailHandlerImpl.a(v9);
                                                        }
                                                    }
                                                    EmailHandlerImpl.e.info(EmailHandlerImpl.f[3]);
                                                    break block55;
                                                }
                                                catch (IOException v10) {
                                                    throw EmailHandlerImpl.a(v10);
                                                }
                                            }
                                            var14_29 = new ByteArrayInputStream(XmlUtil.nodeToString((Node)var11_5.getResponse().getXmlKnob().getDocumentReadOnly()).getBytes());
                                            break block55;
                                        }
                                        var19_23 = EmailHandlerImpl.f;
                                        EmailHandlerImpl.e.finer(var19_23[2]);
                                    }
                                    catch (PolicyVersionException var15_17) {
                                        var19_23 = EmailHandlerImpl.f;
                                        var16_20 = var19_23[1];
                                        EmailHandlerImpl.e.log(Level.INFO, (String)var16_20);
                                        var12_13 = var16_20;
                                        var13_15 = var19_23[9];
                                    }
                                    catch (Throwable var15_18) {
                                        var19_23 = EmailHandlerImpl.f;
                                        EmailHandlerImpl.e.log(Level.WARNING, var19_23[12], ExceptionUtils.getMessage((Throwable)var15_18));
                                        var12_13 = var15_18.getMessage();
                                        if (var12_13 == null) {
                                            var12_13 = var15_18.toString();
                                        }
                                        break block55;
                                    }
                                }
                                var19_23 = EmailHandlerImpl.f;
                                var15_16 = var19_23[17];
                                EmailHandlerImpl.e.log(Level.INFO, (String)var15_16);
                                var12_13 = var15_16;
                                var13_15 = var19_23[0];
                            }
                            if (var14_29 != null) break block56;
                            try {
                                block66: {
                                    if (!var11_5.isStealthResponseMode()) break block57;
                                    break block66;
                                    catch (IOException v11) {
                                        throw EmailHandlerImpl.a(v11);
                                    }
                                }
                                EmailHandlerImpl.e.info(EmailHandlerImpl.f[19]);
                                break block56;
                            }
                            catch (IOException v12) {
                                throw EmailHandlerImpl.a(v12);
                            }
                        }
                        if (var12_13 != null) break block58;
                        var12_13 = var7_3.getMessage();
                    }
                    try {
                        try {
                            v13 = var11_5.getService() != null ? var11_5.getService().getSoapVersion() : SoapVersion.UNKNOWN;
                        }
                        catch (IOException v14) {
                            throw EmailHandlerImpl.a(v14);
                        }
                        try {
                            v15 = var13_15 == null ? EmailHandlerImpl.f[7] : var13_15;
                        }
                        catch (IOException v16) {
                            throw EmailHandlerImpl.a(v16);
                        }
                        var15_16 = SoapFaultUtils.generateSoapFaultXml((SoapVersion)v13, (String)v15, (String)var12_13, null, (String)"");
                        try {
                            if (var15_16 != null) {
                                this.c.publishEvent(new FaultProcessed((PolicyEnforcementContext)var11_5, (String)var15_16, this.a));
                            }
                        }
                        catch (IOException v17) {
                            throw EmailHandlerImpl.a(v17);
                        }
                    }
                    catch (SAXException var15_19) {
                        throw new EmailListenerRuntimeException(var15_19);
                    }
                }
                catch (IOException var14_30) {
                    throw new EmailListenerRuntimeException(var14_30);
                }
                finally {
                    ResourceUtils.closeQuietly((Closeable)var11_5);
                }
            }
            catch (IOException var9_11) {
                throw new RuntimeException(var9_11);
            }
        }
    }

    /*
     * Unable to fully structure code
     */
    static {
        block10: {
            block9: {
                var5 = new String[22];
                var3_1 = 0;
                var2_2 = "\u001b$Z7?R1\n-B'4Ugx:V44Ta=,\u0013&>\u0006r6h\\'%Br,-Wr'Ca+!\\<qIux8\\>8Ej\u0014\u0016'\u0013 4Uc7&@7qTv;-Z$4BL\b'_;2_3*-G'#Hv<hV #Iax)]6qUg=)_&9\u0006~7,Vr8U3+-G|qh|,h@7?Bz6/\u0013 4Uc7&@7qKv+;R54\b\f+-A$4TP7&U;6\u001a\b'_;2_3*-@'=Rv<hZ<qUg9<F!q\u001d5-@!0Av\b:\\14U`1&T\u0017'C},\u000b[3?Hv4\u0006\u000b-A$4T\u0013+<R!9kr6)T7#`r;<\\ (\u0006\u001b$Z7?R\u00069+G;>H;\u001e'F<5\u0006v5)Z>qNv9,V qR|x=@7q@|*h`\u001d\u0010vR;<Z=?\u0006e9$F7k\u0006@\u0017\tc\u00132Rz7&\u000e-\u001d0P7!Rz7&\u0013%9O\u007f=hC >Ev+;Z<6\u0006v5)Z>qKv+;R54\u001c3#xN \u001d:A=#\u0006c*'P7\"Uz6/\u0013 4Wf=;Gr<C`+)T7 \u001d:A=#\u0006c*'P7\"Uz6/\u0013 4Wf=;Gr<C`+)T77\u001e'F<5\u0006v5)Z>qNv9,V qR|x=@7q@|*h`\u001d\u0010vR;<Z=?\u0006e9$F7k\u0006r;<Z=?\u001b\"\u001d:A=#\u0006c*'P7\"Uz6/\u0013:0Tw/!A75\u0006`=:E;2C\u0019\n-B'4Ugx%V!\"Gt=hG=>\u0006\u007f9:T7\u001a\u000b8A;?A3\u001b']&4^gx!@r#Cb-!A75Q\u0016'\u0013 4Uc7&@7qBr,)\u00133'Gz4)Q>4\u0006r6,\u0013!%Cr4<[r<Iw=hZ!qUv,f\u0013\u001c>R3+-]68Htx:V!!I}+-\u0013?4U`9/V|";
                var4_3 = "\u001b$Z7?R1\n-B'4Ugx:V44Ta=,\u0013&>\u0006r6h\\'%Br,-Wr'Ca+!\\<qIux8\\>8Ej\u0014\u0016'\u0013 4Uc7&@7qTv;-Z$4BL\b'_;2_3*-G'#Hv<hV #Iax)]6qUg=)_&9\u0006~7,Vr8U3+-G|qh|,h@7?Bz6/\u0013 4Uc7&@7qKv+;R54\b\f+-A$4TP7&U;6\u001a\b'_;2_3*-@'=Rv<hZ<qUg9<F!q\u001d5-@!0Av\b:\\14U`1&T\u0017'C},\u000b[3?Hv4\u0006\u000b-A$4T\u0013+<R!9kr6)T7#`r;<\\ (\u0006\u001b$Z7?R\u00069+G;>H;\u001e'F<5\u0006v5)Z>qNv9,V qR|x=@7q@|*h`\u001d\u0010vR;<Z=?\u0006e9$F7k\u0006@\u0017\tc\u00132Rz7&\u000e-\u001d0P7!Rz7&\u0013%9O\u007f=hC >Ev+;Z<6\u0006v5)Z>qKv+;R54\u001c3#xN \u001d:A=#\u0006c*'P7\"Uz6/\u0013 4Wf=;Gr<C`+)T7 \u001d:A=#\u0006c*'P7\"Uz6/\u0013 4Wf=;Gr<C`+)T77\u001e'F<5\u0006v5)Z>qNv9,V qR|x=@7q@|*h`\u001d\u0010vR;<Z=?\u0006e9$F7k\u0006r;<Z=?\u001b\"\u001d:A=#\u0006c*'P7\"Uz6/\u0013:0Tw/!A75\u0006`=:E;2C\u0019\n-B'4Ugx%V!\"Gt=hG=>\u0006\u007f9:T7\u001a\u000b8A;?A3\u001b']&4^gx!@r#Cb-!A75Q\u0016'\u0013 4Uc7&@7qBr,)\u00133'Gz4)Q>4\u0006r6,\u0013!%Cr4<[r<Iw=hZ!qUv,f\u0013\u001c>R3+-]68Htx:V!!I}+-\u0013?4U`9/V|".length();
                var1_4 = 6;
                var0_5 = -1;
lbl7:
                // 2 sources

                while (true) {
                    v0 = 125;
                    v1 = ++var0_5;
                    v2 = var2_2.substring(v1, v1 + var1_4);
                    v3 = -1;
                    break block9;
                    break;
                }
lbl13:
                // 1 sources

                while (true) {
                    var5[var3_1++] = EmailHandlerImpl.a(v0, EmailHandlerImpl.a(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    var2_2 = ">&K*;J}\u00031W:?^k<1\u0016:,}4;Dt\u001e&K*;J}\u001e\"@\u001b#Y} ";
                    var4_3 = ">&K*;J}\u00031W:?^k<1\u0016:,}4;Dt\u001e&K*;J}\u001e\"@\u001b#Y} ".length();
                    var1_4 = 16;
                    var0_5 = -1;
lbl22:
                    // 2 sources

                    while (true) {
                        v0 = 118;
                        v4 = ++var0_5;
                        v2 = var2_2.substring(v4, v4 + var1_4);
                        v3 = 0;
                        break block9;
                        break;
                    }
                    break;
                }
lbl28:
                // 1 sources

                while (true) {
                    var5[var3_1++] = EmailHandlerImpl.a(v0, EmailHandlerImpl.a(v2));
                    if ((var0_5 += var1_4) < var4_3) {
                        var1_4 = var2_2.charAt(var0_5);
                        ** continue;
                    }
                    break block10;
                    break;
                }
            }
            switch (v3) {
                default: {
                    ** continue;
                }
                ** case 0:
lbl39:
                // 1 sources

                ** continue;
            }
        }
        EmailHandlerImpl.f = var5;
        EmailHandlerImpl.e = Logger.getLogger(EmailHandlerImpl.class.getName());
    }

    private static IOException a(IOException iOException) {
        return iOException;
    }

    private static char[] a(String string) {
        char[] cArray = string.toCharArray();
        if (cArray.length < 2) {
            cArray = cArray;
            cArray[0] = (char)(cArray[0] ^ 0x6E);
        }
        return cArray;
    }

    /*
     * Handled impossible loop by duplicating code
     * Enabled aggressive block sorting
     */
    private static String a(int n2, char[] cArray) {
        char[] cArray2;
        block11: {
            int n3;
            int n4;
            int n5;
            block10: {
                n5 = n2;
                cArray2 = cArray;
                n4 = cArray.length;
                n3 = 0;
                if (!true) break block10;
                n4 = n4;
                if (n4 <= n3) break block11;
            }
            do {
                n5 = n5;
                cArray2 = cArray2;
                int n6 = n3;
                cArray2[n6] = (char)(cArray2[n6] ^ (n5 ^ (switch (n3 % 7) {
                    case 0 -> 37;
                    case 1 -> 53;
                    case 2 -> 78;
                    case 3 -> 47;
                    case 4 -> 44;
                    case 5 -> 91;
                    default -> 110;
                })));
                ++n3;
                n4 = n4;
            } while (n4 > n3);
        }
        return new String(cArray2).intern();
    }
}

