How could I covenrt custom shader to URP

I’ve been used a custom shader.
but it doesn’t work in URP configuration.

this is that shader.

Shader
“Toon/Custom/IK_Smooth_Outline”
{
Properties {
_MainTex (“Base (RGB)”, 2D) = “white” {}
_ShadeTex (“Shade Tex”, 2D) = “white” {}

	_RimColor ( "Rim Color" , Color ) = (0.26,0.19,0.16,0.0)
	_RimPower ( "Rim Power" , Range(0.5,8.0)) = 3.0

	_OutlineColor("Outline Color", Color) = (0,0,0,1)
	_Outline("Outline Width", Range(.001, 0.1)) = .0016

	//_AmbientFactor("Outline Width", Range(0.1, 5)) = 2.7
}
SubShader {
	Tags { "RenderType"="Opaque" }
	LOD 200
	Cull Off
	
	CGPROGRAM
	#pragma surface surf Shade noambient

	sampler2D _MainTex;
	sampler2D _ShadeTex;

	float4 _RimColor;
	float  _RimPower;

	//uniform float _AmbientFactor;

	struct Input {
		float2 uv_MainTex;
		float3 viewDir;
	};

	struct SurfaceOutputCustom {
		fixed3 Albedo;
		fixed3 Normal;
		fixed3 Emission;
		half Specular;
		fixed Gloss;
		fixed Alpha;
	};

	half4 LightingShade(SurfaceOutputCustom s,half3 lightDir,half attend)		
	{

		half NdotL = dot(s.Normal,lightDir);

		float3 d_Albedo = s.Albedo * s.Albedo;

		//어두운 부분은 좀 더 밝게,
		float shadeOffset = lerp(0.50, 0.40, NdotL);
		half shade = NdotL*0.1 + shadeOffset;
		//half shade = NdotL*0.1+0.5;
		half cell_shade = saturate(shade * 6 -3 );

		half3 ramp = tex2D(_ShadeTex,float2(shade,shade));

		fixed3 ambient = 0;
		ambient = UNITY_LIGHTMODEL_AMBIENT * 2.7;

		float3 light = clamp(_LightColor0.rgb, 0.0, 1.0);
		ambient = clamp(ambient, 1.4, 1.7)*light;

		half4 c;
		c.rgb = lerp(d_Albedo, s.Albedo, cell_shade) * ramp * ambient;
		c.a = s.Alpha;

		return c;
	}

	void surf (Input IN, inout SurfaceOutputCustom o) {
		half4 c = tex2D (_MainTex, IN.uv_MainTex);

		o.Albedo = c.rgb ;// * diffuse;
		o.Alpha = c.a;

		half rim = 1.0 - saturate(dot (normalize(IN.viewDir) , o.Normal));
		o.Emission = _RimColor.rgb * pow(rim,_RimPower);
	}
	ENDCG
   
		CGINCLUDE

#include “UnityCG.cginc”

		struct appdata {
		float4 vertex : POSITION;
		float3 normal : NORMAL;
	};

	struct v2f {
		float4 pos : POSITION;
		float4 color : COLOR;
	};

	uniform float _Outline;
	uniform float4 _OutlineColor;

	v2f vert(appdata v) {
		v2f o;
		o.pos = UnityObjectToClipPos(v.vertex);
		float3 clipNormal = mul((float3x3) UNITY_MATRIX_VP, mul((float3x3) UNITY_MATRIX_M, v.normal));

		float2 offset = normalize(clipNormal.xy) * _Outline * o.pos.w;
		//float2 offset = normalize(clipNormal.xy) / _ScreenParams.xy * _Outline * o.pos.w;

		o.pos.xy += offset;
		o.color = _OutlineColor;

		/*o.pos = v.vertex;
		o.pos.xyz += v.normal.xyz * _Outline;
		o.pos = UnityObjectToClipPos(o.pos);

		o.color = _OutlineColor;*/

		return o;
	}
	ENDCG

		Pass{
		Name "OUTLINE"
		Tags{ "LightMode" = "Always" }
		Cull Front
		ZWrite Off
		ColorMask RGB
		Blend SrcAlpha OneMinusSrcAlpha

		CGPROGRAM

#pragma vertex vert
#pragma fragment frag
half4 frag(v2f i) :COLOR{ return i.color; }
ENDCG
}
}
FallBack “Diffuse”
}